Force feedback mouse interface

ABSTRACT

A force feedback mouse interface device connected to a host computer and providing realistic force feedback to a user. The mouse interface device includes a mouse object and a linkage coupled to the mouse that includes a plurality of members rotatably coupled to each other in a planar closed-loop linkage and including two members coupled to ground and rotatable about the same axis. Two actuators, preferably electromagnetic voice coils, provide forces in the two degrees of freedom of the planar workspace of the mouse object. Each of the actuators includes a moveable coil portion integrated with one of the members of the linkage and a magnet portion coupled to the ground surface through which the coil portion moves. The grounded magnet portions of the actuators can be coupled together such that a common flux path between the magnet portions is shared by both magnets. At least one sensor is coupled to the ground surface that detects movement of the linkage and provides a sensor signal including information from which a position of the mouse object in the planar workspace can be determined.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part of parent patent applicationSer. No. 08/560,091, now U.S. Pat. No. 5,805,140, filed Nov. 17, 1995,on behalf of Rosenberg et al., entitled "Method and Apparatus forProviding Low Cost Force Feedback and Mechanical I/O for ComputerSystems", and Ser. No. 08/756,745, now U.S. Pat. No. 5,825,308, filedNov. 26 1996, on behalf of Rosenberg et al., entitled, "Force FeedbackInterface having Isotonic and Isometric Functionality," both assigned tothe assignee of this present application, and both of which areincorporated by reference herein.

BACKGROUND OF THE INVENTION

The present invention relates generally to interface devices forallowing humans to interface with computer systems, and moreparticularly to mechanical computer interface devices that allow theuser to provide input to computer systems and provide force feedback tothe user.

Computer systems are used extensively in many different industries toimplement many applications, such as word processing, data management,simulations, games, and other tasks. A computer system typicallydisplays a visual environment to a user on a display screen or othervisual output device. Users can interact with the displayed environmentto perform functions on the computer, play a game, experience asimulation or "virtual reality" environment, use a computer aided design(CAD) system, browse the World Wide Web, or otherwise influence eventsor images depicted on the screen.

One visual environment that is particularly common is a graphical userinterface (GUI). GUI's present visual images which describe variousgraphical metaphors of a program or operating system implemented on thecomputer. Common GUI's include the Windows® operating system fromMicrosoft Corporation and the MacOS operating system from AppleComputer, Inc. These interfaces allows a user to graphically select andmanipulate functions of the operating system and application programs byusing an input interface device. The user typically moves auser-controlled graphical object, such as a cursor or pointer, across acomputer screen and onto other displayed graphical objects or predefinedscreen regions, and then inputs a command to execute a given selectionor operation. The objects or regions ("targets") can include, forexample, icons, windows, pull-down menus, buttons, and scroll bars. MostGUI's are currently 2-dimensional as displayed on a computer screen;however, three dimensional (3-D) GUI's that present simulated 3-Denvironments on a 2-D screen can also be provided.

Other programs or environments that may provide user-controlledgraphical objects such as a cursor include browsers and other programsdisplaying graphical "web pages" or other environments offered on theWorld Wide Web of the Internet, CAD programs, video games, virtualreality simulations, etc. In some graphical computer environments, theuser may provide input to control a 3-D "view" of the graphicalenvironment, i.e., the user-controlled graphical "object" can beconsidered the view displayed on the video screen. The user canmanipulate the interface device to move the view, as if moving a camerathrough which the user is looking. This type of graphical manipulationis common in CAD or 3-D virtual reality applications.

The user interaction with and manipulation of the computer environmentis achieved using any of a variety of types of human-computer interfacedevices that are connected to the computer system controlling thedisplayed environment. In most systems, the computer updates theenvironment in response to the user's manipulation of auser-manipulatable physical object ("user object") that is included inthe interface device, such as a mouse, joystick, trackball, etc. Thecomputer provides visual and audio feedback to the user utilizing thedisplay screen and, typically, audio speakers.

Another mode of feedback recently introduced to the consumer home marketis force feedback, which provide the user with sensory "haptic" (feel)information about an environment. Most of the consumer force feedbackdevices are joysticks which include motors to provide the forces to thejoystick and to the user. Current force feedback joystick devices mayallow realistic and effective forces to be transmitted to a user;however, the standard joystick device is well-suited for such uses ascontrolling an aircraft or other simulated vehicle in a simulation orgame, first-person perspective virtual reality applications, or otherrate-control tasks and is not well suited to position control tasks suchas controlling a pointer or cursor in a graphical user interface. Othertypes of controllers, such a mouse, trackball, stylus and tablet, "touchpoint" keyboard pointers, and finger pads are commonly provided forcursor position control tasks since they are adept at accuratelycontrolling the position of a graphical object in two dimensions.Herein, "position control" refers to a direct mapping of the position ofthe user object with a user-controlled graphical object, such ascontrolling a cursor in a GUI, while "rate control" refers to anindirect or abstract mapping of user object to graphical object, such asscrolling text in a window, zooming to a larger view in a window of aGUI, or controlling velocity of a simulated vehicle.

A problem with the currently-available position control interfacedevices is that none of them offer realistic force feedback. A mouse isnot easily provided with force feedback since the mouse must be moved ina planar workspace and is not easily connected to actuators whichprovide the force feedback. Controllers as trackballs and tablets areeven less well suited for force feedback than a mouse controller due totheir free-floating movement. A joystick, in contrast, is typicallyconnected to an immobile base which can include large actuators neededto provide realistic forces on the joystick. A mouse can be coupled toactuators from a side linkage, but a compact, low cost, andconveniently-positioned mechanism allowing free movement of a mouse aswell as providing realistic force feedback for the mouse has not beenavailable in the consumer market.

SUMMARY OF THE INVENTION

The present invention is directed to a mouse interface which isconnected to a host computer and provides realistic force feedback to auser. The interface device includes low cost, compact components thatprovide a convenient mouse interface for a desktop.

More specifically, the present invention provides a mouse interfacedevice for interfacing a user's motion with a host computer andproviding force feedback to the user. The host computer preferablyimplements a graphical environment with which the user interacts usingthe mouse interface device. The mouse interface device includes a userobject, preferably a mouse object, contacted and manipulated by a userand moveable in a planar workspace with respect to a ground surface. Alinkage coupled to the mouse includes a plurality of members rotatablycoupled to each other. In one preferred configuration, the linkage is aplanar closed-loop linkage including two members coupled to ground androtatable about the same axis. Two actuators, preferably electromagneticvoice coil actuators, provide forces in the two degrees of freedom ofthe planar workspace of the mouse object. Each of the actuators includesa moveable coil portion preferably integrated with one of the members ofthe linkage and a magnet portion coupled to the ground surface throughwhich the coil portion moves. The actuators are controlled from commandsoutput by the host computer. Finally, at least one sensor is coupled tothe ground surface that detects movement of a member of the linkage andprovides a sensor signal including information from which a position ofthe mouse object in the planar workspace can be determined.

The planar linkage may include four members coupled to a ground member,where a first base member is rotatably coupled to the ground member, alink member is rotatably coupled to the base member, a second basemember is rotatably coupled to the ground member, and an object memberis rotatably coupled to the link member and the second base member. Themouse object is coupled to the object member and preferably may rotatewith respect to the object member to allow the user easy handling of themouse. The members of the linkage are coupled together by bearings ofthe present invention, which may be ball bearing assemblies, snaptogether bearings, snap together bearings including ball bearings, orV-shaped bearings.

The coils of the actuators are preferably integrated in the members ofthe linkage, for example the base members of the linkage, and movethrough magnetic fields provided by the grounded portions. In addition,the grounded magnet portions of the actuators are coupled together inone embodiment, such that a common flux path between the magnet portionsis shared by both magnet portions. In a preferred configuration, thefirst and second base members are coupled to a rotation point at a midpoint of the base members, where one end of each base member integratessaid coil such that the coil is spaced from the rotation point of saidmember, thereby providing mechanical advantage to forces generated bythe actuator on the base members.

Many implementations of the sensor can be provided. In one embodiment,two sensors are provided, where the sensors are digital encoders thatinclude a grounded portion having an emitter and detector and a movingportion on one of the members of the linkage including an encoder archaving a number of equally spaced marks provided, where the marks aredetected by the grounded portion when the member moves. In otherembodiments, the sensors can be lateral effect photo diodes, an emitterdirecting a beam to detector using a light pipe, an encoder sensor witha friction wheel, or a planar sensor pad. In one embodiment, the planarsensor pad senses a magnitude of force provided against the sensor padin a direction perpendicular to the two degrees of freedom of the mouseobject. Also, the wire coils and the grounded magnets of the actuatorscan be used as the sensor to sense a velocity of the members on whichthe coils are provided.

The mouse object is preferably rotatably coupled to the object member toallow convenient use of the mouse for the user such that the mouseobject rotates about an axis of rotation though the object member, saidaxis of rotation being perpendicular to the ground surface. A stopmechanism limits movement of the mouse object in the planar workspace toa desired area, and can include a guide opening provided in the groundsurface and a guide pin coupled to the linkage that engages sides of theguide opening to provide the movement limits. A safety switch can beincluded that causes the actuators to be deactivated when the user isnot contacting the mouse object. A local microprocessor, separate fromthe host computer system, is included in the interface device and mayprovide local control over sensing and outputting forces to relieve thecomputational burden on the host computer. The interface device can alsoinclude a support such as a low friction Teflon pad, roller, or othermember separate from the linkage and coupled between the mouse objectand the ground surface for providing extra support to the mouse. Anindexing feature of the present invention allows the user to change theoffset between the position of the mouse object and the location of adisplayed cursor on a display screen.

The method and apparatus of the present invention provides a forcefeedback mouse interface that allows a user to conveniently interfacewith a host computer application program. The actuators, sensors, andlinkage of the device, in the embodiments described, provide a compact,simple, low-cost design that outputs realistic forces on the user andaccurately tracks the user's motions in the provided workspace, and iswell suited for the consumer market.

These and other advantages of the present invention will become apparentto those skilled in the art upon a reading of the followingspecification of the invention and a study of the several figures of thedrawing.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of one embodiment of a force feedback mouseinterface system of the present invention;

FIG. 2 is a perspective view of the mouse interface of FIG. 1 showing alinkage mechanism, actuators, and sensors of the present invention;

FIG. 2a is a perspective view of a support pad for supporting the mouseof FIG. 2;

FIGS. 3a and 3b are top plan and side elevational views, respectively,of the mouse interface of FIG. 2;

FIG. 3c is a side elevational detail view of an actuator magnet assemblyof the mouse interface of FIG. 2;

FIGS. 4a and 4b is a top plan view of the mouse interface of FIG. 2 inwhich the linkage is moved;

FIG. 4c is a detailed top plan view of the sensors used in the presentinvention;

FIG. 4d is a perspective view of an alternate embodiment of the mouseinterface of FIG. 2;

FIG. 4e is a perspective view of an alternate sensor having a frictionwheel;

FIG. 4f is a perspective view of an alternate sensor having a planarsensor pad;

FIGS. 4g1 and 4g2 are perspective and top plan views, respectively, ofan alternate light pipe sensor of the present invention;

FIGS. 4h1 and 4h2 are perspective and top plan views, respectively, ofan alternate light pipe sensor to that of FIGS. 4g1 and 4g2;

FIGS. 4i and 4j are perspective views of alternate sensors including anemitter and detector;

FIGS. 5a and 5b are perspective and side elevational views,respectively, of a ball bearing assembly suitable for use in the mouseinterface of the present invention;

FIG. 5c is a snap bearing of the present invention suitable for use withthe mouse interface of the present invention;

FIGS. 5d1 and 5d2 are perspective views of an alternate snap bearing ofthe present invention for use with the mouse interface of the presentinvention;

FIG. 5e is a top plan view of the snap bearing of FIGS. 5d1 and 5d2;

FIG. 5f is a side partial sectional view of the rotating bearingassembly of the snap bearing of FIGS. 5d1 and 5d2;

FIGS. 5g1 and 5g2 are perspective views of an alternate V-shaped bearingof the present invention for use with the mouse interface of the presentinvention;

FIG. 6 is a block diagram of the system of FIG. 1 for controlling aforce feedback interface device of the present invention;

FIG. 7a is a perspective view of a mouse interface object for use withthe interface system of FIG. 1;

FIG. 7b is a side elevational view of the mouse of FIG. 7a showing asafety switch;

FIG. 7c is a diagrammatic illustration of the indexing function of thepresent invention using the mouse of FIG. 7a; and

FIGS. 8a-8e are perspective views of alternate embodiments of theinterface object for use with the interface system of FIG. 1.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

FIG. 1 is a perspective view of a force feedback mouse interface system10 of the present invention capable of providing input to a hostcomputer based on the user's manipulation of the mouse and capable ofproviding force feedback to the user of the mouse system based on eventsoccurring in a program implemented by the host computer. Mouse system 10includes a mouse or "puck" 12, an interface 14, and a host computer 18.It should be noted that the term "mouse" as used herein, indicates anobject 12 generally shaped to be grasped or contacted from above andmoved within a substantially planar workspace (and additional degrees offreedom if available). Typically, a mouse is a smooth or angular shapedcompact unit that snugly fits under a user's hand, fingers, and/or palm.

Mouse 12 is an object that is preferably grasped or gripped andmanipulated by a user. By "grasp," it is meant that users may releasablyengage a portion of the object in some fashion, such as by hand, withtheir fingertips, etc. For example, images are displayed and/or modifiedon a display screen 20 of the computer system 18 in response to suchmanipulations. In the described embodiment, mouse 12 is shaped so that auser's fingers or hand may comfortably grasp the object and move it inthe provided degrees of freedom in physical space; an example of auser's hand is shown as dashed line 16. For example, a user can movemouse 12 to correspondingly move a computer generated graphical object,such as a cursor or other image, in a graphical environment provided bycomputer 18. The available degrees of freedom in which mouse 12 can bemoved are determined from the interface 14, described below. Inaddition, mouse 12 preferably includes one or more buttons 15 to allowthe user to provide additional commands to the computer system.

It will be appreciated that a great number of other types of usermanipulable objects ("user objects" or "physical objects") can be usedwith the method and apparatus of the present invention in place of or inaddition to mouse 12. For example, such objects may include a sphere, apuck, a joystick, cubical- or other-shaped hand grips, a receptacle forreceiving a finger or a stylus, a flat planar surface like a plasticcard having a rubberized, contoured, and/or bumpy surface, or otherobjects. Some of these other objects, such as a stylus, are described indetail subsequently with respect to FIGS. 8a-e.

Interface 14 interfaces mechanical and electrical input and outputbetween the mouse 12 and host computer 18 implementing the applicationprogram, such as a GUI, simulation or game environment. Interface 14provides multiple degrees of freedom to mouse 12; in the preferredembodiment, two linear, planar degrees of freedom are provided to themouse, as shown by arrows 22. In other embodiments, greater or fewerdegrees of freedom can be provided, as well as rotary degrees offreedom. For many applications, mouse 12 need only be moved in a verysmall workspace area, shown as dashed line 24 in FIG. 1 as an example.This is described in greater detail with respect to FIG. 7c.

In a preferred embodiment, the user manipulates mouse 12 in a planarworkspace, much like a traditional mouse, and the position of mouse 12is translated into a form suitable for interpretation by positionsensors of the interface 14. The sensors track the movement of the mouse12 in planar space and provide suitable electronic signals to anelectronic portion of interface 14. The interface 14 provides positioninformation to host computer 18. In addition, host computer 18 and/orinterface 14 provide force feedback signals to actuators coupled tointerface 14, and the actuators generate forces on members of themechanical portion of the interface 14 to provide forces on mouse 12 inprovided or desired degrees of freedom. The user experiences the forcesgenerated on the mouse 12 as realistic simulations of force sensationssuch as jolts, springs, textures, "barrier" forces, and the like.

For example, a rigid surface is generated on computer screen 20 and acomputer object (e.g., cursor) controlled by the user collides with thesurface. In a preferred embodiment, high-level host commands can be usedto provide the various forces associated with the rigid surface. Thelocal control mode using microprocessor 130 can be helpful in increasingthe response time for forces applied to the user object, which isessential in creating realistic and accurate force feedback. Forexample, it is preferable that host computer 18 send a "spatialrepresentation" to microprocessor 200, which is data describing thelocations of some or all the graphical objects displayed in a GUI orother graphical environment which are associated with forces and thetypes/characteristics of these graphical objects. The microprocessor canstore such a spatial representation in memory 204, and thus will be ableto determine interactions between the user object and graphical objects(such as the rigid surface) independently of the host computer. Inaddition, the microprocessor 200 can be provided with the necessaryinstructions or data to check sensor readings, determine cursor andtarget positions, and determine output forces independently of hostcomputer 18. The host could implement program functions (such asdisplaying images) when appropriate, and synchronization commands can becommunicated between processor 200 and host 18 to correlate themicroprocessor and host processes. Also, memory 204 can storepredetermined force sensations for microprocessor 200 that are to beassociated with particular types of graphical objects. Alternatively,the computer 18 can directly send force feedback signals to theinterface 14 to generate forces on mouse 12.

The electronic portion of interface 14 may couple the mechanical portionof the interface to the host computer 18. The electronic portion ispreferably included within the housing 26 of the interface 14 or,alternatively, the electronic portion may be included in host computer18 or as a separate unit with its own housing. More particularly,interface 14 includes a local microprocessor distinct and separate fromany microprocessors in the host computer 18 to control force feedback onmouse 12 independently of the host computer, as well as sensor andactuator interfaces that convert electrical signals to appropriate formsusable by the mechanical portion of interface 14 and host computer 18. Asuitable embodiment of the electrical portion of interface 14 isdescribed in detail with reference to FIG. 6.

The interface 14 can be coupled to the computer 18 by a bus 17, whichcommunicates signals between interface 14 and computer 18 and also, inthe preferred embodiment, provides power to the interface 14 (e.g. whenbus 17 includes a USB interface). In other embodiments, signals can besent between interface 14 and computer 18 by wirelesstransmission/reception. In preferred embodiments of the presentinvention, the interface 14 serves as an input/output (I/O) device forthe computer 18. The interface 14 can also receive inputs from otherinput devices or controls that are associated mouse system 10 and canrelay those inputs to computer 18. For example, commands sent by theuser activating a button on mouse 12 can be relayed to computer 18 byinterface 14 to implement a command or cause the computer 18 to output acommand to the interface 14. Such input devices are described in greaterdetail with respect to FIGS. 5 and 6.

Host computer 18 is preferably a personal computer or workstation, suchas an IBM-PC compatible computer or Macintosh personal computer, or aSUN or Silicon Graphics workstation. For example, the computer 18 canoperate under the Windows™ or MS-DOS operating system in conformancewith an IBM PC AT standard. Alternatively, host computer system 18 canbe one of a variety of home video game systems commonly connected to atelevision set, such as systems available from Nintendo, Sega, or Sony.In other embodiments, home computer system 18 can be a "set top box"which can be used, for example, to provide interactive televisionfunctions to users, or a "network-" or "internet-computer" which allowsusers to interact with a local or global network using standardconnections and protocols such as used for the Internet and World WideWeb. Host computer preferably includes a host microprocessor, randomaccess memory (RAM), read only memory (ROM), input/output (I/O)circuitry, and other components of computers well-known to those skilledin the art.

Host computer 18 preferably implements a host application program withwhich a user is interacting via mouse 12 and other peripherals, ifappropriate, and which can include force feedback functionality. Forexample, the host application program can be a simulation, video game,Web page or browser that implements HTML or VRML instructions,scientific analysis program, virtual reality training program orapplication, or other application program that utilizes input of mouse12 and outputs force feedback commands to the mouse 12. Herein, forsimplicity, operating systems such as Windows™, MS-DOS, MacOS, Unix,etc. are also referred to as "application programs." In one preferredembodiment, an application program utilizes a graphical user interface(GUI) to present options to a user and receive input from the user.Herein, computer 18 may be referred as displaying "graphical objects" or"computer objects." These objects are not physical objects, but arelogical software unit collections of data and/or procedures that may bedisplayed as images by computer 18 on display screen 20, as is wellknown to those skilled in the art. A displayed cursor or a simulatedcockpit of an aircraft might be considered a graphical object. The hostapplication program checks for input signals received from theelectronics and sensors of interface 14, and outputs force values and/orcommands to be converted into forces on mouse 12. Suitable softwaredrivers which interface such simulation software with computerinput/output (I/O) devices are available from Immersion Human InterfaceCorporation of San Jose, Calif.

Display device 20 can be included in host computer 18 and can be astandard display screen (LCD, CRT, etc.), 3-D goggles, or any othervisual output device. Typically, the host application provides images tobe displayed on display device 20 and/or other feedback, such asauditory signals. For example, display screen 20 can display images froma GUI. Images describing a moving, first person point of view can bedisplayed, as in a virtual reality game. Or, images describing athird-person perspective of objects, backgrounds, etc. can be displayed.Alternatively, images from a simulation, such as a medical simulation,can be displayed, e.g., images of tissue and a representation of amanipulated user object 12 moving through the tissue, etc.

There are two primary "control paradigms" of operation for mouse system10: position control and rate control. Position control is the moretypical control paradigm for mouse and similar controllers, and refersto a mapping of mouse 12 in which displacement of the mouse in physicalspace directly dictates displacement of a graphical object. The mappingcan have an arbitrary scale factor or even be non-linear, but thefundamental relation between mouse displacements and graphical objectdisplacements should be present. Under a position control mapping, thecomputer object does not move unless the user object is in motion. Also,"ballistics" for mice-type devices can be used, in which small motionsof the mouse have a different scaling factor for cursor movement thanlarge motions of the mouse to allow more control of small cursormovement. Position control is not a popular mapping for traditionalcomputer games, but is popular for other applications such as graphicaluser interfaces (GUI's) or medical procedure simulations. Positioncontrol force feedback roughly corresponds to forces which would beperceived directly by the user, i.e., they are "user-centric" forces.

As shown in FIG. 1, the host computer may have its own "host frame" 28which is displayed on the display screen 20. In contrast, the mouse 12has its own "local frame" 30 in which the mouse 12 is moved. In aposition control paradigm, the position (or change in position) of auser-controlled graphical object, such as a cursor, in host frame 30corresponds to a position (or change in position) of the mouse 12 in thelocal frame 28. The offset between the object in the host frame and theobject in the local frame can preferably be changed by the user, asdescribed below in FIG. 7c.

Rate control is also used as a control paradigm. This refers to amapping in which the displacement of the mouse 12 along one or moreprovided degrees of freedom is abstractly mapped to motion of acomputer-simulated object under control. There is not a direct physicalmapping between physical object (mouse) motion and computer objectmotion. Thus, most rate control paradigms are fundamentally differentfrom position control in that the user object can be held steady at agiven position but the controlled computer object is in motion at acommanded or given velocity, while the position control paradigm onlyallows the controlled computer object to be in motion if the user objectis in motion.

The mouse interface system 10 is useful for both position control("isotonic") tasks and rate control ("isometric") tasks. For example, asa traditional mouse, the position of mouse 12 in the workspace 24 can bedirectly mapped to a position of a cursor on display screen 20 in aposition control paradigm. Alternatively, the displacement of mouse 12in a particular direction against an opposing output force can commandrate control tasks in an isometric mode. An implementation that providesboth isotonic and isometric functionality for a force feedbackcontroller and which is very suitable for the interface device of thepresent invention is described in parent application Ser. No.08/756,745, now U.S. Pat. No. 5,825,308, incorporated by referenceherein.

Mouse 12 is preferably supported and suspended above grounded surface 34by the mechanical portion of interface 14, described below. In alternateembodiments, mouse 12 can be moved on a grounded pad 32 or othersurface. In other embodiments, mouse 12 can contact a surface, pad, orgrounded surface 34 to provide additional support for the mouse andrelieve stress on the mechanical portion of interface 14. In particular,such additional support is valuable for embodiments in which there isonly one location of grounding (e.g., at one axis of rotation) for amechanical linkage of the device, as in the embodiment of FIG. 2. Insuch an embodiment, a wheel, roller, Teflon pad or other device ispreferably used on the mouse to minimize friction between the mouse andthe contacted surface.

Mouse 12 can be used, for example, to control a computer-generatedgraphical object such as a cursor displayed in a graphical computerenvironment, such as a GUI. The user can move the mouse in 2D planarworkspace to move the cursor to graphical objects in the GUI or performother tasks. In other graphical environments, such as a virtual realityvideo game, a user can be controlling a computer player or vehicle inthe virtual environment by manipulating the mouse 12. The computersystem tracks the position of the mouse with sensors as the user movesit. The computer system may also provide force feedback commands to themouse, for example, when the user moves the graphical object against agenerated surface such as an edge of a window, a virtual wall, etc. Itthus appears and feels to the user that the mouse and the graphicalobject are contacting real surfaces.

FIG. 2 is a perspective view of a preferred embodiment of the mousesystem 10 with the cover portion of housing 26 removed, showing themechanical portion of interface 14 for providing mechanical input andoutput in accordance with the present invention. Interface 14 includes amouse or other user manipulatable object 12, a mechanical linkage 40,and a transducer system 41. A base 42 is provided to support themechanical linkage 40 and transducer system 41 on grounded surface 34.

Mechanical linkage 40 provides support for mouse 12 and couples themouse to a grounded surface 34, such as a tabletop or other support.Linkage 40 is, in the described embodiment, a 5-member (or "5-bar")linkage including a ground member 42, a first base member 44 coupled toground member 42, a second base member 48 coupled to ground member 42, alink member 46 coupled to base member 44, and an object member 50coupled to link member 46, base member 48 and to mouse 12. Fewer orgreater numbers of members in the linkage can be provided in alternateembodiments.

Ground member 42 of the linkage 40 is a base for the support of thelinkage and is coupled to or resting on a ground surface 34. The groundmember 42 in FIG. 2 is shown as a plate or base that extends under mouse12. In other embodiments, the ground member can be shaped in other waysand might only contact the ground surface directly under bearing 52.,for example.

The members of linkage 40 are rotatably coupled to one another throughthe use of rotatable pivots or bearing assemblies having one or morebearings, all referred to as "bearings" herein. Base member 44 isrotatably coupled to ground member 42 by a grounded bearing 52 and canrotate about an axis A. Link member 46 is rotatably coupled to basemember 44 by bearing 54 and can rotate about a floating axis B, and basemember 48 is rotatably coupled to ground member 42 by bearing 52 and canrotate about axis A. Object member 50 is rotatably coupled to basemember 48 by bearing 56 and can rotate about floating axis C, and objectmember 50 is also rotatably coupled to link member 46 by bearing 58 suchthat object member 50 and link member 46 may rotate relative to eachother about floating axis D. In the described embodiment, link member 46is coupled at its end to a mid-portion of object member 50 and mouse 12is coupled to the end of object member 50. In an alternate embodiment,the end of link member 46 can be rotatably coupled to the end of basemember 48, as in a parallel linkage disclosed in co-pending patentapplication Ser. No. 08/664,086 by Rosenberg et al., hereby incorporatedby reference in its entirety. The axes B, C, and D (and E) are"floating" in the sense that they are not fixed in one position relativeto ground surface 34 as is axis A. Preferably, the axes B, C, and D areall substantially parallel to each other.

One advantageous feature of the linkage 40 is that both base member 44and base member 48 are rotatable about the same axis A. This isimportant to allow the compact actuator design of the present invention,as described in greater detail with reference to FIGS. 3a and 3b. Alsothis configuration dramatically simplifies the kinematic equationsrequired to describe the motion of mouse 12 and provide forces to mouse12 at the other end of the linkage. In alternate embodiments, members 44and 48 can be coupled to ground member 42 at different locations and arerotatable about different axes, so that two grounded axes are providedabout which each member rotates. In yet other embodiments, the groundmember 42 can be positioned between the base members 44 and 48 on axisA.

Linkage 40 is formed as a five-member closed-loop chain. Each member inthe chain is rotatably coupled to two other members of the chain. Thefive-member linkage is arranged such that the members can rotate abouttheir respective axes to provide mouse 12 with two degrees of freedom,i.e., mouse 12 can be moved within a planar workspace defined by the x-yplane, which is defined by the x- and y-axes as shown in FIG. 2. Linkage40 is thus a "planar" five-member linkage, since it allows the mouse 12to be moved within a plane. In addition, in the described embodiment,the members of linkage 40 are themselves approximately oriented in aplane.

Mouse 12 in the preferred embodiment is coupled to object member 50 by arotary bearing 60 so that the mouse may rotate about floating axis E andallow the user some flexible movement in the planar workspace. Inalternate embodiments, motion about axis E may be sensed by sensors. Inyet other embodiments, forces can be provided on mouse 12 about axis Eusing actuators. In the preferred embodiment, a pad or other support isprovided under mouse 12 to help support the mouse 12, and is describedin greater detail with respect to FIG. 2a.

In alternate embodiments, capstan drive mechanisms (not shown) can beprovided to transmit forces and motion between electromechanicaltransducers and the mouse 12. One example of the user of capstan drivesis shown in parent application Ser. No. 08/56,745. Capstan drivemechanisms provide mechanical advantage for forces generated byactuators without introducing substantial friction and backlash to thesystem. In alternate embodiments, mouse 12 can also be moved in anadditional spatial degree of freedom using a rotatable carriage coupledbetween ground member 42 and base member 44. Such an embodiment isdescribed in greater detail with reference to co-pending patentapplication Ser. No. 08/736,161, now U.S. Pat. No. 5,828,197,incorporated by reference herein in its entirety.

Transducer system 41 is used to sense the position of mouse 12 in itsworkspace and to generate forces on the mouse 12. Transducer system 41preferably includes sensors 64 and actuators 66. The sensors 64collectively sense the movement of the mouse 12 in the provided degreesof freedom and send appropriate signals to the electronic portion ofinterface 14. Sensor 62a senses movement of link member 48 about axis A,and sensor 62b senses movement of base member 44 about axis A. Thesesensed positions about axis A allow the determination of the position ofmouse 12 using known constants such as the lengths of the members oflinkage 40 and using well-known coordinate transformations. Memberlengths particular to the interface device can be stored in local memory134, such as EEPROM, to account for manufacturing variations amongdifferent interface devices; alternatively, variations of the particularlink lengths from standard lengths can be stored in memory 204.

Sensors 62 are, in the described embodiment, grounded optical encodersthat sense the intermittent blockage of an emitted beam. A groundedemitter portion 70 emits a beam which is detected across a gap by agrounded detector 72. A moving encoder disk or arc 74 is provided at theend of member 48 which blocks the beam in predetermined spatialincrements and allows a processor to determine the position of the arc74 and thus the member 48 by counting the spatial increments. Also, avelocity of member 48 based on the speed of passing encoder marks canalso be determined. In one embodiment, dedicated electronics such as a"haptic accelerator" may determine velocity and/or acceleration, asdisclosed in co-pending patent application Ser. No. 08/804,535, filedFeb. 21, 1997, and hereby incorporated by reference herein. Theoperation of sensors 62 are described in greater detail with referenceto FIGS. 4a-4c.

Transducer system 41 also preferably includes actuators 64 to transmitforces to mouse 12 in space, i.e., in two (or more) degrees of freedomof the user object. The housing of a grounded portion of actuator 64b isrigidly coupled to ground member 42 and a moving portion of actuator 64b(preferably a coil) is integrated into the base member 44. The actuatortransmits rotational forces to base member 44 about axis A. The housingof the grounded portion of actuator 64a is rigidly coupled to groundmember 42 through the grounded housing of actuator 64b, and a movingportion (preferably a coil) of actuator 64a is integrated into basemember 48. Actuator 64a transmits rotational forces to link member 48about axis A. The combination of these rotational forces about axis Aallows forces to be transmitted to mouse 12 in all directions in theplanar workspace provided by linkage 40 through the rotationalinteraction of the members of linkage 40. The integration of the coilsinto the base members 44 and 48 is advantageous to the present inventionand is discussed below.

In the preferred embodiment, actuators 64 are electromagnetic voice coilactuators which provide force through the interaction of a current in amagnetic field. The operation of the actuators 64 is described ingreater detail below in FIG. 3. In other embodiments, other types ofactuators can be used, both active and passive, such as DC motors,pneumatic motors, passive friction brakes, passive fluid-controlledbrakes, etc.

Additional and/or different mechanisms can also be employed to providedesired degrees of freedom to mouse 12. For example, in someembodiments, bearing 60 can be provided between mouse 12 and mousemember 50 to allow the mouse to rotate about an axis E extending throughthe bearing 60. The allowed rotation can provided to allow the user'shand/wrist to conveniently stay in one position during mouse movementwhile the mouse 12 rotates about axis E. This rotational degree offreedom can also be sensed and/or actuated, if desired, to provide anadditional control degree of freedom. In other embodiments, a floatinggimbal mechanism can be included between mouse 12 and linkage 40 toprovide additional degrees of freedom to mouse 12. Optionally,additional transducers can be also added to interface 14 in provided oradditional degrees of freedom of mouse 12.

In an alternate embodiment, the mechanism 14 can be used for a 3-Dinterface device that allows a user to move a user object 12 in threedimensions rather than the 2-D planar workspace disclosed. For example,in one embodiment, the entire mechanism 14 can be made to rotate about agrounded axis, such as axis H extending through the magnet assemblies88. For example, members (not shown) rigidly coupled to the magnetassemblies 88 or to grounded member 42 can . extend in both directionsalong axis H and be rotary coupled to a grounded surface at points H1and H2. This provides a third (rotary) degree of freedom about axis H tothe mechanism 14 and to the user object 12. A motor can be grounded tothe surface near point H1 or H2 and can drive the mechanism 14 aboutaxis H, and a sensor, such as a rotary encoder, can sense motion in thisthird degree of freedom. One reason for providing axis H through themagnet assemblies is to reduce the inertia and weight contributed tomotion about axis H by the magnet assemblies. Axis H can be provided inother positions in other embodiments. In such an embodiment, the userobject 12 can be a stylus, grip, or other user object. A third lineardegree of freedom to mechanism 14 can be provided in alternateembodiments. One embodiment of a planar linkage providing three degreesof freedom is disclosed in co-pending patent application Ser. No.08/736,161 filed Oct. 25, 1996 and hereby incorporated by referenceherein.

FIG. 2a is a perspective view of a portion of the housing 26 of themouse interface device of the present invention which is positionedunder mouse 12. Grounded surface 59 of the housing 26 preferablyincludes, in the preferred embodiment, a pad 57 or other supportpositioned on it. Pad 57 supports the bottom of mouse 12 on the groundedsurface 59 when the mouse is moved in its planar workspace. Since thelinkage 40 is coupled to ground only at one location (axis A), thesideways position of the linkage 40 creates an unbalanced weight thatmay not be fully supported by the grounded bearing 52. Pad 57 providesthe required support to any pressure or force from the user in thez-direction on mouse 12 toward the ground surface 34. In the describedembodiment, the pad 57 surrounds an opening in housing 26 that ispositioned over the opening 76 in the ground member 42 that provides thelimits to the workspace of the mouse 12 using a guide pin, as describedbelow (the ground member 42 is positioned under the surface 59 in thedescribed embodiment).

The pad 57 can support the mouse 12 on any grounded surface, such asgrounded member 42 or grounded surface 34. The pad 57 is preferably madeof Teflon or other smooth material that allows the mouse 12 to slidesubstantially freely over surface 59 (or ground member 42 or groundedsurface 34) with a small amount of friction. In other embodiments, othertypes of supports can be used that allow a small friction between mouseand surface, such as a roller, wheel, ball, etc. In other embodiments, apad or other support can be coupled to the underside of linkage 40 suchas at object member 50 or at bearing 60, or at other areas between mouse12 and grounded surface 34.

FIG. 3a is a top plan view and FIG. 3b is a side elevational view of themouse interface system.

As seen in FIG. 3b, the only connection of the four linkage members 44,46, 48, and 50 to the ground member 42 is through grounded bearing 52,where only base members 44 and 48 are grounded at axis A. Bearings 54,56, and 58 are floating and not connected to the ground member. Thesingle rotation point for the base members is important to the presentinvention since it allows the coils on the base members to sweep thesame region, permitting the grounded portion of the actuators to bestacked as explained below. Bearing 52 actually includes two rotarybearings 52a and 52b, where bearing 52a couples member 48 to groundmember 42 and bearing 52b couples member 44 to ground member 42.

As described above, actuators 64 are preferably electromagnetic voicecoil actuators used to provide forces to the user object. The heavyportion of the actuators--the magnets and housing for magnets--aregrounded, while the lighter portion of the actuators--the coils--are notgrounded and ride on members of the linkage. Voice coil actuators aredescribed in detail in parent patent application Ser. No. 08/560,091 nowU.S. Pat. No. 5,805,140.

Actuator 64a drives base member 48. Base member 48 includes anintegrated coil portion 80a on which a wire coil is provided. Coilportion 80a may be of the same material as the remaining portion ofmember 48, or it may include a circuit board material (with a suitabledielectric, etc.) which promotes easy layout and etching of a coil onits surface. A wire coil 82a of actuator 64a is coupled to portion 80aof member 48. Preferably, wire coil 82a includes at least two loops ofwire and is etched or otherwise attached on portion 80a as a printedcircuit board trace using well-known techniques. Fewer or greaternumbers of loops of coil 82a can also be provided. Terminals 93 (shownbetter in FIG. 4c) from wire coil 82a to the electronic interface areprovided so that computer 18 or local microprocessor 130 can control thedirection and/or magnitude of the current in wire coil. The coil 82a canbe made of aluminum, copper, or other conductive material.

The coil portion of actuator 64a is integrated in base member 48 andpivots about A as the base member so pivots. This feature is one of theadvantages of the present invention. In typical prior art force feedbacklinkages, the actuator has a pivot/bearing which the actuator drives,which is separate from the bearing about which a member of the linkagerotates. In the device of the present invention, a single bearing 52 isa grounded bearing of the linkage and a guide bearing for the actuator,since base member 48 is part of both the linkage 40 and the actuator64a. This is more efficient than having separate bearings since one partserves two functions, and reduces the weight of the device as well.

Voice coil actuator 64a also includes a magnet assembly 88a, which isgrounded and preferably includes four magnets 90a and a plate flux path92a. Alternatively, two magnets 90 with two polarities each can beincluded. As shown in FIG. 3c, each magnet has a polarity (north N orsouth S) on opposing sides of the magnet. Opposite polarities of magnets90 face each other, such that coil 82a is positioned between opposingpolarities on either side of the coil. In alternate embodiments, one ormore magnets 90 can be provided on one side of coil 82a, and the othermagnet 90 on the opposite side of the coil 82a can be a piece of metalshaped similarly to the magnet that provides a flux return path for themagnetic field. Preferably, a small amount of space is provided betweenthe magnet surfaces and the coil 84a/member 48. Magnetic flux guide 92ais provided as, in the described embodiment, two steel plates on eitherside of the magnets 90a and are used to house the actuator 64a to allowmagnetic flux from magnets 90a to travel from one end of the magnets 90ato the other end, as is well known to those skilled in the art.

The magnetic fields from magnets 90a interact with a magnetic fieldproduced from wire coil 82a when current is flowed in coil 82a, therebyproducing forces on member 48. Coil 82a and member 84 are positionedbetween magnets 90a and are thus affected by the magnetic fields ofopposing magnets. As an electric current I is flowed through the coil82a via electrical terminals 93, a magnetic field is generated from thecurrent and configuration of coil 82a. The magnetic field from the coilthen interacts with the magnetic fields generated by magnets 90a toproduce a force on member 48 about axis A. The magnitude or strength ofthe force is dependent on the magnitude of the current that is appliedto the coil, the number of loops in the coil, and the magnetic fieldstrength of the magnets. The direction of the force depends on thedirection of the current in the coil; the force can be applied in eitherdirection about axis A. By applying a desired current magnitude anddirection, force can be applied to member 48 and through member 50,thereby applying force to mouse 12 in the x-y plane workspace of themouse. A voice coil actuator can be provided for each degree of freedomof the mechanical apparatus to which force is desired to be applied.

Thus, the magnetic fields from magnets 90a interact with the magneticfield produced from wire coil 82a when current is flowed in coil 82a toproduce a planar force to the coil portion 80a of the member 84. Thecoil portion 80a and wire coil 82a are moved about axis A until themember 48 contacts the stop supports 91 provided at each end of therange of motion of the member 48 about axis A (guide opening 76 andguide pin 78 may also limit the range of the actuators; see FIG. 4a).Alternatively, the physical stops to movement can be omitted, where theforce on member 48 is gradually decreases and ceases as the coil portion80a moves out from between the magnets 90a.

Voice coil actuator 64b operates similarly to actuator 64a. A current isflowed through coil 82b to cause interaction with a magnetic field frommagnets 90b of magnet assembly 88b which is similar to the magnetassembly 88a described above, and inducing magnetic forces that rotateportion 80b of base member 44 about axis A. This causes forces to beapplied to mouse 12 in the x-y workspace of the mouse through the member44, member 46, and member 50. In one embodiment, plates 90c provided onthe other side of member 44 are simply metal plates provided for fluxpath of the magnetic field from magnets 90b (or are omitted altogether);this is more efficient from a manufacturing perspective since themagnets 90a and 90b are obtained as a unit and can simply be placed asis on the interface device 10 in the manufacturing process. In otherembodiments, plates 90c can be magnets similar to magnets 90a and 90b;this provides a stronger magnetic field, allowing stronger forces usingless power; however, the manufacturing/assembly process of the mouseinterface device is more complex and expensive.

Magnet assembly 88b is preferably positioned below and coupled tomagnetic assembly 88a such that the grounded magnet assemblies arestacked. Magnetic flux guide 92b is coupled to magnetic flux guide 92aand a portion of the flux path between the two magnetic assemblies isshared by both actuators. This allows each actuator to gain a greaterflux path. In addition, the stacked configuration can provide bothmagnetic assemblies as a single unit, providing a more compact design, asimpler manufacturing design, less materials, and a simpler, less costlyunit to mount on the interface device.

An important advantage of the present invention is the linkage 40 whichprovides a single rotation axis A for both base members 44 and 48. Sincethe base members 44 and 48 of the present invention also integrate themoving wire coil portion of the actuators, the moving portion of theactuators thus also rotate about the same axis A. The coils 82a and 82bthus sweep the same region, with one coil over the other coil. Themembers 44 and 48, in effect, act as guides for the movement of thecoils. This single axis of rotation allows the magnet assemblies 88a and88b to be stacked, which provides several advantages as explained above.The single axis rotation for both members 44 and 48 also allows thesensor arcs 74 to sweep out regions that are the same but on differentpoints on the z-axis. This allows sensors 62a and 62b to be stacked oneach other to read the sensor arcs, providing an even more advantageous,compact design.

A further advantage of integrating the coils 82 with the grounded basemembers 44 and 48 is that mechanical advantage is gained from the lengthof the base members. The two base members 44 and 48 are coupled to asingle pivot point at a mid-point of the base members, where one end ofeach base member includes a coil--the coils are thus spaced from pivot.The mechanical advantage is derived from the ratio of the distance fromthe coil to the rotation point (axis A) and the distance from therotation point to the other end of the member at the bearing 54. Thebase members 44 and 48 thus act as lever arms, and the lever armdistance provides mechanical advantage to forces generated by theactuators 64 and transmitted through linkage 40 to mouse 12.

The voice coil actuators 64a and 64b have several advantages. One isthat a limited movement range is defined for a particular degree offreedom of mouse 12 by the length of the magnets 90 and the stops 91.Also, control of the voice coil actuator is simpler than other actuatorssince output torque is a substantially linear function of input coilcurrent. In addition, since voice coil actuators do not requiremechanical or electrical commutation as do other types of motors, thevoice coil actuator has a longer life expectancy, less maintenance, andquiet operation. The actuation is nearly frictionless, resulting ingreater haptic fidelity and smoother feel to the user. The parts forvoice coil actuators are inexpensive to produce and are readilyavailable, such as voice coil driver chips, resulting in a low cost wayto provide realistic force feedback.

In the particular embodiment disclosed, another advantage relates to thegrounding of both actuators 64a and 64b. Since both actuators arecoupled to ground, the user moving mouse 12 does not carry the heavyportion of the actuators (the magnets and the housings) or feel theirweight, thus promoting realistic force feedback using smaller magnitudeforces, and allowing the interface system 10 to be a low cost device.

In alternate embodiments, the mechanical linkage 40 can be replaced byother mechanical linkages or structures which can provide desireddegrees of freedom. For example, portions 80a and 80b of the members 48and 44 can be linearly moved through encoders 62 and linear actuatorscan provide forces in linear degrees of freedom of mouse 12. In otherembodiments in which rotary degrees of freedom are desired for a userobject, linear degrees of freedom can be provided in the X and Y axesand can be converted to two rotary degrees of freedom for a user object12 using a ball joint, pendulum, or other mechanism.

In the preferred embodiment, separate sensors 62 are used to detect theposition of mouse 12 in its planar workspace. This is described ingreater detail with respect to FIGS. 4a-4c. However, in alternateembodiments, the voice coil actuators 64a and 64b can also be used assensors to sense the velocity of the members 44 and 48 about axis Aand/or to derive the position and other values of mouse 12 in its planarworkspace from the sensed velocity. Motion of coil 82a along axis Ywithin the magnetic field of magnets 90a induces a voltage across thecoil 82a and this voltage can be sensed by an analog-to-digitalconverter or other electronics, for example. This voltage isproportional to the velocity of the coil and portion 80 of the rotatingmember about axis A. From this derived velocity, acceleration orposition of the members 48 and 44 can be derived using timinginformation, for example, from a clock (described below). Alternatively,one or more additional coils similar to coil 82a and having anappropriate number of loops can be placed on member portions 80 whichare dedicated to sensing voltage to derive position, velocity, oracceleration as described above. However, voice coil actuators produceanalog values, which are subject to noise, and the filtering of suchnoise typically requires expensive components; thus, in the preferredlow-cost embodiment, separate digital sensors are used to sense theposition, motion, etc. of mouse 12.

In other embodiments, additional coils can also be provided foractuators 64 to provide different magnitudes of forces. For example,coil 82a can include multiple separate "sub-coils" of wire. A set ofterminals can be included for each different sub-coil. Each sub-coil caninclude a different number of loops on portion 80 and therefore willgenerate a different magnetic field and thus a different magnitude offorce when a constant current I is flowed through the sub-coil. Thisscheme is also applicable to a digital system using on and off switches.This embodiment is described in greater detail in co-pending applicationSer. No. 08/560,091.

In other embodiments, linear actuators can be used to provide forces inprovided degrees of freedom. Some examples of linear electromagneticactuators are described in patent application Ser. No. 08/560,091. Also,other types of actuators may be used in place of or in addition toactuators 64 of the interface device. For example, the linkage can bedriven by a direct drive DC motor or a geared/belt DC motor to providemechanical advantage.

FIGS. 4a and 4b are top plan views of mouse interface system 10 showingthe operation of the mouse system. In FIG. 4a, the mouse 12 (not shown)coupled to member 50 at axis E is approximately at a neutral position inwhich the members 44 and 50 are approximately parallel and the mouse isapproximately in a center of its allowed workspace. Coil portions 80aand 80b of members 44 and 48 are approximately centered in the range ofthe optical encoder sensors 62a and 62b and within the range of magnetassemblies 88a and 88b.

As shown in FIG. 4a, a workspace guide opening 76 is provided in groundmember 42 to limit the movement of mouse 12 in the x-y plane. Guideopening 76 is a shallow opening in the ground member 42 having sideswhich block movement of the mouse 12 beyond specified limits. A guidepin 78 is coupled to the bearing 60 at axis E and extends down into theguide opening 76. Pin 78 contacts one or more sides of the opening 76when the mouse is moved to a limit in a particular direction. As shown,guide opening 76 has relatively small dimensions, allowing the mouse aworkspace of approximately 0.9" by 0.9" in the described embodiment.This is typically adequate workspace for the user to move the mouse andcontrol a graphical object such as a cursor on a display screen. Inother embodiments, differently-sized guide openings can be provided fordifferently-sized workspaces, or other types of stops or guides can beused to prevent movement past predetermined limits. The guide opening 76is shown as square shaped, but it can be rectangular in otherembodiments; for example, the dimensions of opening 76 can be made thesame aspect ratio as a standard computer monitor or other displayscreen. FIG. 4a shows guide pin 78 approximately in the center of theguide opening 76.

In FIG. 4b, the mouse 12 (not shown) and axis E have been moved in thex-y plane of the workspace of the mouse. The movement of the mouse hasbeen limited by the guide opening 76, where guide pin 78 has engaged thesidewall of the upper-left corner area of guide opening 76 and stops anyfurther movement in the forward y-direction. Linkage 40 and portions 80of members 44 and 48 have moved as shown, such that portion 80a of linkmember 48 has moved to the left and portion 80b of base member 44 hasmoved to the right of their positions in FIG. 4a. Sensor 62a hasdetected the movement of portion 80a by sensing the movement of theencoder arc 74a through the gap of the encoder 62a. Likewise, sensor 62bhas detected the movement of portion 80b by sensing the movement of theencoder arc 74b through the gap of encoder 62b.

FIG. 4c is a detailed top plan view of portion 80a of link member 48 andencoder 62a. Encoder arc 74 is preferably a transparent material, suchas plastic, and preferably includes a number of dark line marks 98 whichare very closely spaced together. The more closely spaced the marks 98are, the finer the resolution of the sensor 62. For example, in thepreferred embodiment, a line spacing on the arc can be about 200-500lines per inch, providing four times that resolution in a quadratureencoder (these dimensions are exaggerated in FIG. 4c for clarity).Sensor 62 emits a beam of electromagnetic energy, such as an infraredbeam, from emitter 70, which is detected across the gap at detector 72when a mark 98 is not positioned to block the beam, i.e., the beam cantravel through the transparent material of arc 74. When a mark passesunder the beam, the beam is blocked and this blockage is detected by thedetector 72. In this way, the detector 72 outputs a sensor signal orpulse indicating each time a mark passes through the beam. Since sensor62 in the described embodiment is a quadrature encoder, detector 72preferably includes 2 individual spaced apart detectors providing fourtimes the resolution, as is well known to those skilled in the art. Bycounting the number of marks passing through the beam, the position ofthe member 48 about axis A is known. The velocity and/or acceleration ofthe member 48 can also be derived from the position data and timinginformation, as described above. Other types of emitter-detector pairscan also be used.

Portion 80b of base member 44 and encoder 62b function similarly to theportion 80a and encoder 62a described above. From the positions of thebase member 48 and the base member 44 about axis A, the position ofmouse 12 can be determined. A suitable optical quadrature encoder whichperforms the functions described above is model HEDS-9000 from HewlettPackard. In alternate embodiments, the encoder wheel 158 may be madeopaque, while marks 159 are notches cut out of the wheel 158 that allowthe beam from the emitter to pass through and be detected by detector162.

Alternate embodiments can include sensors 62a and/or 62b (and/oractuators 64) in different positions. For example, as shown in thealternate embodiment of FIG. 4d, the actuators 64a and 64b can be placedon opposing sides of the grounded axis A. Likewise, sensors 62a and 62bare placed with their corresponding actuators. Linkage 40' includes themembers 44, 46, 48, and 50 as in the embodiment of FIG. 2, but inslightly different positions due to the different sensor/actuatorplacement. In other respects, the embodiment of FIG. 4d operatessimilarly to the embodiment of FIG. 2. In other embodiments, actuators64 and sensors 62 can also be placed in other positions.

In other embodiments, other types of sensors can be used. For example, asingle sensor can be used to detect motion in both degrees of freedom.

FIG. 4e is a diagrammatic illustration showing an alternate embodimentincluding rotary sensor 152 with a friction wheel. FIG. 4e shows portion80a of member 48, which rotates about axis A. Instead of optical encodersensor 64a, rotary sensor 152 can be used, which includes a groundedshaft 154, a roller 156, an encoder wheel 158, an emitter 160, and adetector 162. Roller 156 is preferably made of a material having highfriction and is rigidly coupled to shaft 154 such that the surface ofthe roller 156 frictionally contacts the circular edge 155 of member 48.When member 48 rotates about axis A, roller 156 rotates shaft 154 aboutan axis extending through the shaft. Encoder wheel 158 is rigidlycoupled to shaft 154 offset from the edge 155 of the member 48 androtates when shaft 154 rotates. Included on encoder wheel 158 are marks159 spaced equally around the perimeter of the encoder wheel. The edgeof the encoder wheel passes between grounded emitter 160 and groundedsensor 162. Similar to the optical encoder embodiment described above,the encoder wheel can be made transparent, so that a beam emitted fromemitter 160 is blocked from reaching detector 162 only when a mark 159passes between the emitter and detector. Thus, detector 162 may send asignal or a count indicating how many marks pass by the detector. Fromthis information, the position of the member 48 can be derived.Alternatively, the encoder wheel 158 may be made opaque, while marks 159are notches cut out of the wheel 158 that allow the beam from theemitter to pass through and be detected by detector 162.

The embodiment of FIG. 4e is advantageous in that the marks 159 need notbe as closely spaced as the marks 98 of the embodiment of FIG. 4c, sinceseveral rotations of encoder wheel 158 are completed for the range ofmotion of member 48 about axis A. This gearing up of the sensorresolution allows a less accurate, and less costly procedure, inproducing the sensor. A disadvantage of this embodiment is that moremoving parts are required, and the friction between roller 156 and edge155 can wear down over time, causing slippage and inaccurate positiondetection.

FIG. 4f is a perspective view of another alternate embodiment of asensing system including a planar sensor 162. Sensor 162 includes aplanar sensor or "touch pad" 161 having rectangular sensing area and apointer 162. Planar sensor 161 is preferably positioned somewherebeneath linkage 40; it is shown approximately at the position of opening76 in FIG. 4f, but can be provided in other positions as well. Pointer162 is coupled to bearing 58 at axis D and extends down to contact thetablet 161, and can be a plastic or metal nub, for example. Pointer 162can also be placed at other bearings or positions of the linkage inother embodiments. The planar sensor 161 can also be placed withinopening 76 so that pointer 162 acts as guide pin 78.

Planar sensor 161 is functional to detect the x and y coordinates of thetip 163 of pointer 162 on the tablet. Thus, as the mouse 12 is moved inits planar workspace, pointer 162 is moved to different locations onplanar sensor 161. The x-y position of the local frame 30 on planarsensor 161 is transformed to the host frame 28 and the user controlledgraphical object is displayed accordingly.

In the preferred embodiment, planar sensor 161 can also sense thepressure of tip 163 on the tablet, i.e., in the z-direction. Forexample, the Versapoint Semiconductive Touch Pad from Interlink is asuitable planar sensor that detects the x-y position as well as pressureor force in the z-direction. The pressure information can be useful insome embodiments for a variety of purposes. A first use is for a safetyswitch. The pressure information can be used to determine whether theuser is currently placing weight on the user object. If the user is notplacing weight, then the actuators can be deactivated for safetyreasons, as described below with reference to FIG. 7b. A second use isfor the indexing function, described below with reference to FIG. 7c.Both these functions might be performed only if the detected pressure inthe z-direction is above or below a predetermined threshold (wheredifferent thresholds can be used for safety switch and indexing, ifdesired).

A third use is to use the pressure information to modify the outputforces on user object 12. One use of pressure information is to controla friction force on the user object felt by the user. For example, ifthe user moves a controlled cursor over a frictional region, the forceopposing movement across the region is output on the user object. If thepressure information in the z-axis is known from planar sensor 161, thispressure information can help determine the magnitude of simulatedfriction the user experiences as the cursor moves across the region.This is because friction in a lateral direction is a function of theforce normal to the surface, which is the force in the z-direction fromthe user. If the user is exerting a large amount of pressure down on theuser object, then a large friction force is felt, and vice versa, as ifa real object were being scraped along the surface. This feature can beespecially useful in drawing programs, where the amount of control inmoving a virtual pen tip can be greatly enhanced if the user is able toinput pressure information in the z-direction and control the amount offriction on the pen tip as it draws on the screen. Thus, pressureinformation in the z-axis can enhance the realism of force sensationsoutput by the interface device 104.

The pressure information can also be used to control a damping force. Adamping force is typically provided as a force proportional to velocityof the user object, where a coefficient of damping b is aproportionality constant. The damping coefficient can be modulated basedon the sensed z-axis force exerted by the user, so that the experienceddamping force is based on the velocity of the user object in the x-yplane as well as the force on the user object in the z-direction, wherea larger z-axis force provides a larger damping coefficient and thus alarger damping force. The pressure information can also be used tocontrol a texture force. One way to provide texture forces is tospatially vary a damping force, i.e., a damping force that varies on andoff according to user object position, such as a series of bumps. Thedamping coefficient b can be varied to create the texture effect, whereb is made high, then low, then high, etc. If pressure in the z-axis isavailable, the damping coefficients can be all globally increased ordecreased by the same amount based on the amount of pressure. Thiscauses a high pressure in the z-axis to provide a stronger textureforce, and vice-versa. Texture can also be based on stiffness (k) as ina spring; the stiffness can be globally varied based on pressureinformation as with the damping texture force. Other types of forces mayalso be enhanced or modified if such pressure information is known.

In yet other embodiments, lateral effect photo diode sensors can be usedin the mouse interface system 10. For example, such a photo diode sensorcan include a rectangular or other-shaped detector positioned in placeof the detector or emitter of sensors 62. A beam emitter that is coupledto ground member 42 or to grounded surface 34 can emit a beam ofelectromagnetic radiation which impinges on the detector. The positionof the detector, and thus the rotating member, is known from theposition of the beam on the detector area. The detector can bepositioned on other areas or components of the linkage 40 in otherembodiments. In other embodiments, the detector can be coupled to groundand the emitter can be coupled to the moving member (as in FIG. 4i and4j below).

FIGS. 4g1 and 4g2 are perspective and top plan views, respectively,showing a different lateral effect diode sensor 166 including a lightpipe. A stationary emitter (e.g., a light emitting diode or LED) 168positioned on ground member 42 or other grounded surface 34 emits a beamof electromagnetic energy. A light pipe 170 is a rigid member having asolid, transparent interior and two ends 171 and 172. End 171 ispositioned over emitter 168 such that the emitted beam travels into thepipe 170. The beam travels through the light pipe and stays inside thepipe due to the index of refraction of the pipe material and angle ofincidence of the beam, as shown by dashed line 173; the operation oflight pipes is well known to those skilled in the art. The beam isreflected of 45-degree angled surfaces in the pipe and directed out ofopening 172. Beam 174 is shown as a long narrow beam in FIG. 4g1, butcan alternatively be provided as a circular or other shaped beam. Thebeam 174 is directed onto a detector 176, which is preferably a photosensitive diode or similar detector, and is grounded similarly toemitter 168. Emitter 168 and detector 176 are preferably provided on thesame grounded printed circuit board for a low cost embodiment. The beam174 can cover a wider area than the detection area 178 of the detector176, as shown. The detector outputs an electrical signal indicating thelocation of the beam on the area 178, as is well known to those skilledin the art.

In the described embodiment, light pipe 170 is rigidly coupled to amoving member, such as member 44 or member 48, at member 180. The lightpipe is rotatable about axis F₁, which in this embodiment is not alignedwith the emitter 168. Axis F₁ can be any of the axes of rotation of themembers of linkage 40 or 40', including axes A, B, C, or D.Alternatively, the light pipe 166 can be placed over member 48 so thatopenings 171 and 172 are on either side of the member 48 and axis F1 isaxis A. When the coupled member moves about axis F₁, the light pipe alsorotates about axis F₁. The beam 174 on detector 176 thus moves as welland the rotated position of the member can be determined by the detectedposition of the beam on the detector. In one embodiment, the light pipemoves about 15 degrees in either direction about axis F₁ (depending onthe movement range of the member to which it is coupled). Thewide-mouthed shape of opening 171 allows the emitted beam 174 to betransmitted through the pipe regardless of the pipe's position over theemitter. A fiber optic cable or flexible pipe can also be used in otherembodiments for light pipe 170. One advantage to this sensor embodimentis that both emitter and detector are grounded, thus greatly simplifyingthe assembly and reducing cost of the device since no wires need berouted to an emitter or detector positioned on a moving member of thelinkage. Another embodiment of a sensor using a lateral effect photodiode is disclosed in patent application Ser. No. 08/560,091.

FIGS. 4h1 and 4h2 are perspective and top plan views, respectively, ofan alternate embodiment 182 of the light pipe sensor of FIGS. 4g1 and4g2. Sensor 182 includes an emitter 184, a light pipe 186, and adetector 188 which operate substantially the same as these components inFIG. 4g1 and 4g2. A centroid location 191 of the beam can be detected bythe detector 188. Light pipe 186 is rigidly coupled to a moving membersuch as member 44 or 48 and may rotate about axis F₂ with the coupledmember, where axis F₂ may be any of the axes of rotation of the linkage40 or 40'. In this embodiment, however, the beam is emitted from emitter184 coaxially with the axis of rotation F₂ of the light pipe. Since thelight pipe may rotate about the axis of the emitted beam, the opening190 of light pipe 186 can be made narrower than the wide opening 171 ofthe light pipe 170. In addition, this configuration has the advantageover light pipe 170 in that the beam 192 directed at detector 188 ismore uniform throughout the range of motion of the pipe, since theemitter source 184 does not change its position relative to the opening190 of the pipe.

FIG. 4i is a perspective view of another alternate embodiment of asensor 193 for use with the present invention. An emitter 194 is mountedto a rotating arm 195 that is in turn rigidly coupled to a moving membersuch as member 44 or 48 by a coupling 196. Rotating arm 195 thus rotatesabout an axis F₃ when the connected member of the linkage rotates, whereaxis F₃ is the axis of rotation of the connected member and may be anyof the axes of rotation of the linkage 40 or 40'. In the embodimentshown, a directed beam 198 of electromagnetic energy is shapedsubstantially circular and is directed at a grounded detector 197 whichis similar to the detectors described above. The directed beam thussweeps over the detecting area of the detector 197 when the arm 195 andthe connected member rotate, allowing the detector to sense the positionof the member. The directed beam can be of other shapes in otherembodiments. Rotating arm 195, in alternate embodiments, can be part ofan existing member of the linkage 40 or 40', e.g. an extension of amember of the linkage rather than a separate component.

FIG. 4j is a perspective view of an alternate embodiment 193' of thesensor 193 of FIG. 4i. Embodiment 193' includes a rotating arm 195 anddetector 197 as described in FIG. 4i. In addition, a flexible fiberoptic cable 199 or similar flexible light guide is coupled between theemitter 194 and the arm 195. Fiber optic cable 199 guides a light beam189 from emtiter 194 and along the cable's length, where thetransmission of light through such a cable is well known to thoseskilled in the art. The beam is guided to arm 195, where the beam 189 isdirected onto detector 197 as in FIG. 4i. The cable 199 may flex as thearm 195 rotates about axis F₃. This embodiment allows the emitter 194 tobe grounded as well as the detector 197, thus simplifying assembly andreducing the manufacturing cost of the device.

FIG. 5a is a perspective view and FIG. 5b is a side elevational view ofone embodiment of a ball bearing assembly 200 suitable for use forrotatably connecting the members of linkage 40 or 40' of the presentinvention. The linkage 40' of the alternate embodiment of FIG. 4d isshown in FIG. 5a; however, the bearing assembly 200 can also be used inthe embodiment of FIG. 2. The ball bearing assembly 200 includes a row206 of individual balls 202 that ride in V-shaped grooves 204 (bearingraces) which are an integral part of each member. FIG. 5b shows a sideelevational view of one implementation of the bearing assembly 200 aboutthe grounded axis A of the alternate embodiment of FIG. 4d. This bearingassembly includes several layers 208 of balls 202, where a first layer208a of balls 202a is positioned in a ring within V-shaped groove 204abetween the ground member 42 and the base member 44. On the base member44 is positioned layer 208b of balls 202b in a ring within V-shapedgroove 204b. Base member 48 is positioned over layer 208b, and a top caplayer 208c of balls 202c within V-shaped groove 204c is positioned overthe base member 48. The entire bearing assembly 200 is then preloadedwith a screw 210 or spring loading mechanism to keep all the componentsof the bearing assembly tightly coupled together. Advantages of thebearing assembly 200 include low cost of manufacture since the parts arewidely available and inexpensive, and high stiffness and compactness.

FIG. 5c is a perspective view of an alternate embodiment for bearings ofthe linkage 40 or 40'. In the described embodiment of FIG. 5c, snapbearing 216 is provided for bearing 56, and snap bearing 218 is providedfor bearing 58. One part of bearing 216 is a cylindrical boss 220included as part of member 50, which mates with cylindrical cavity 222included in member 48. A slot 217 in member 48 which extends from thecylindrical cavity 222 creates a spring that allows the sides of thecavity 222 to grab the boss 220 with a predetermined amount of force.The boss 220 can be made of a slippery plastic material such as Delrin,while the cavities can be made of metal as is member 48. Likewise, onepart of bearing 218 is a cylindrical boss 219 included as part of member50 which mates with cylindrical cavity 221 included in member 46. A slot223 in member 446 extends from the cavity 221 and creates a spring forcethat grabs boss 219 with a predetermined amount of force. In addition,upper and lower flanges, or other devices, can be provided on thecylindrical bosses 220 and 219 to prevent the elements of bearings 216and 218 from sliding apart along axes C and D, i.e., to keep the membersof the linkage substantially in the same plane. Similar bearings to 216and 218 can be used for the other bearings of linkage 40 or 40'.

The bearings 216 and 218 use the natural springiness (elasticity) ofelements 46 and 48 to hold the elements 48, 50, and 46 together, andthus can provide a connection having close to zero play due to thecreated spring force. Preferably, these bearings can be simply snappedtogether to provide a low cost, easy-to-assemble linkage 40 or 40'.

FIGS. 5d1 and 5d2 are perspective views of an alternate embodiment 224of the snap bearings 216 and 218 of FIG. 5c. As shown in FIG. 5d1,bearing 224 includes a fork 225 provided, in the example shown, onmember 48 (the bearing 224 can be provided on other members of linkage40 or 40' as well). Fork 225 includes two prongs 226 that each include acavity 227 for receiving a corresponding assembly of bearing 224 (notshown in FIG. 5d1). Like the snap bearings 216 and 218 of FIG. 5c, aslot 228 extends from each of the cavities 227 on the prongs 226. InFIG. 5d1, bearing 58 on member 46 is a standard bearing having twoprongs for holding a corresponding portion (not shown) of a bearing onthe attached member.

In FIG. 5d2, member 50 has been attached to members 46 and 48. Bearing224 couples member 48 with member S0. A bearing assembly 229 of member50 includes two cylindrical bosses 230 at either end which "snap" into(mate with) the prongs 226 of the fork 225 on member 48 and is rigidlyheld by a predetermined amount of spring force caused by slot 228 andthe elasticity of the prong material. Member 50 is attached to member 46using a standard bearing 58; in other embodiments, bearing 58 can be abearing similar to bearing 224. Bearing 224 can be made of similarmaterials as described in FIG. 5c.

FIG. 5e is a top plan view of bearing 224 where assembly 229 is matedwith fork 225. As shown, the cylindrical cavity 227 preferably has adiameter dl to which the boss 230 of assembly 229 is matched in size.The forward portion 231 of cavity 227 preferably is narrower than thediameter d₁ of the cavity 227 by an amount d₂ on each side of theportion 231. This allows the boss 230 of the assembly 229 to fit moresnugly in the mating portion 232 of the cavity and holds the boss 230 inplace within the mating portion of the cavity 227.

FIG. 5f is a side partial sectional view of bearing assembly 229 of thebearing 224. Assembly 229 preferably includes a bearing 232 and abearing 234 which may rotate with respect to each other about axis J(which may be any of the axes A, B, C, D, or E of the linkage 40 or40'). Bearing 232 includes the boss 230 which is coupled to inner shaft233, which in turn is coupled to inner races 235a and 235b of ballbearing grooves 237a and 237b, respectively. Bearing 234 includes outerhousing 239 which is coupled to outer races 241a and 241b of ballbearing grooves 237a and 237b, respectively. A number of balls 243 areprovided in grooves 237a and 237b and operate as a standard ball bearingor as bearing 200 of FIG. 5a, i.e., balls 243 move in grooves 237a and237b (or the races 235 and 241 move relative to the balls) as the twobearings 232 and 234 rotate relative to each other. Assembly 229 ispreloaded with adhesive or other fasteners to create a tight assembly.Thus, in the example of FIGS. 5d1 and 5d2, the member 48 is coupled tothe boss 230 and inner races 235a and 235b through fork 225, while themember 50 is coupled to the outer housing 234 and outer races 241a and241b, thus allowing member 48 and member 50 to rotate about axis Crelative to each other. Bearing 224 provides low friction bearing andhas very little play.

Bearing 224 is also well-suited to be used at axis A of the linkage 40or 40', where members 44 and 48 are both rotatably coupled to groundmember 42 or ground 34 in the described embodiment such that member 48is positioned above member 44. Bearing 224 can be stacked on anotherbearing 224 at axis A, where the lower boss 230a of the upper assembly229 attached to member 48 can be inserted into the upper boss 230b ofthe lower assembly 229 attached to member 44, providing a rigid innershaft between both assemblies 229 concentric around axis A. An emptyshaft can be provided through the assemblies 229 to allow a screw orother fastener to attach the assemblies 229 to ground member 42.

FIG. 5g1 is a perspective view of another alternate bearing 234 whichcan be used for some or all of the bearings of linkage 40 or 40'. Forexample, the bearing 234 can be used for bearing 56 or 58 of theembodiment of FIG. 2. Bearing 234 includes a V-shaped notch 236 whichmates with a V-shaped edge 238. The angle between the sides of notch 236is greater than the angle between the sides of edge 238 by an amountgreater than or equal to the desired range of angular motion provided bythe bearing 234. In addition, a web element 240 is provided in thecenter of notch 236 which corresponds and mates with a notch 242 inV-shaped edge 238. The web element 240 and notch 242 prevent theelements of the linkage connected by bearing 234 from moving out ofsubstantially planar relation to each other. FIG. 5g2 shows the bearing234 when the elements of the linkage have been connected together. Thebearing provides smooth rotational motion of the elements with respectto each other about axis G with very little friction. The bearing 234can be held together, for example, by a spring element 244 (shownsymbolically) connected between two posts 246 on the connected elements.Other types of connections can preload the bearing to keep its partstogether in other embodiments.

FIG. 6 is a block diagram illustrating the electronic portion ofinterface 14 and host computer 18 suitable for use with the presentinvention. Mouse interface system 10 includes a host computer 18,electronic interface 100, mechanical apparatus 102, and mouse or otheruser object 12. Electronic interface 100, mechanical apparatus 102, andmouse 12 can also collectively be considered a "force feedback interfacedevice" 104 that is coupled to the host computer. A similar system isdescribed in detail in co-pending patent application Ser. No.08/566,282, now U.S. Pat. No. 5,734,373, which is hereby incorporated byreference herein in its entirety.

As explained with reference to FIG. 1, computer 18 is preferably apersonal computer, workstation, video game console, or other computingor display device. Host computer system 18 commonly includes a hostmicroprocessor 108, random access memory (RAM) 110, read-only memory(ROM) 112, input/output (I/O) electronics 114, a clock 116, a displaydevice 20, and an audio output device 118. Host microprocessor 108 caninclude a variety of available microprocessors from Intel, AMD,Motorola, or other manufacturers. Microprocessor 108 can be singlemicroprocessor chip, or can include multiple primary and/orco-processors. Microprocessor 108 preferably retrieves and storesinstructions and other necessary data from RAM 110 and ROM 112 as iswell known to those skilled in the art. In the described embodiment,host computer system 18 can receive sensor data or a sensor signal via abus 120 from sensors of system 10 and other information. Microprocessor108 can receive data from bus 120 using I/O electronics 114, and can useI/O electronics to control other peripheral devices. Host computersystem 18 can also output commands to interface device 104 via bus 120to cause force feedback for the interface system 10.

Clock 116 is a standard clock crystal or equivalent component used byhost computer 18 to provide timing to electrical signals used by hostmicroprocessor 108 and other components of the computer system 18. Clock116 is accessed by host computer 18 in the control process of thepresent invention to provide timing information that may be necessary indetermining force or position, e.g., calculating a velocity oracceleration from position values.

Display device 20 is described with reference to FIG. 1. Audio outputdevice 118, such as speakers, can be coupled to host microprocessor 108via amplifiers, filters, and other circuitry well known to those skilledin the art. Host processor 108 outputs signals to speakers 118 toprovide sound output to the user when an "audio event" occurs during theimplementation of the host application program. Other types ofperipherals can also be coupled to host processor 108, such as storagedevices (hard disk drive, CD ROM drive, floppy disk drive, etc.),printers, and other input and output devices.

Electronic interface 100 is coupled to host computer system 18 by abi-directional bus 120. The bi-directional bus sends signals in eitherdirection between host computer system 18 and the interface device 104.Bus 120 can be a serial interface bus providing data according to aserial communication protocol, a parallel bus using a parallel protocol,or other types of buses. An interface port of host computer system 18,such as an RS232 serial interface port, connects bus 120 to hostcomputer system 18. In another embodiment, an additional bus 122 can beincluded to communicate between host computer system 18 and interfacedevice 13. Bus 122 can be coupled to a second port of the host computersystem, such as a "game port", such that two buses 120 and 122 are usedsimultaneously to provide an increased data bandwidth.

One preferred serial interface bus used in the present invention is theUniversal Serial Bus (USB). The USB standard provides a relatively highspeed serial interface that can provide force feedback signals in thepresent invention with a high degree of realism. USB can also sourcepower to drive actuators 64 and other devices of the present invention.Since each device that accesses the USB is assigned a unique USB addressby the host computer, this allows multiple devices to share the samebus. In addition, the USB standard includes timing data that is encodedalong with differential data.

Electronic interface 100 includes a local microprocessor 130, localclock 132, local memory 134, sensor interface 136, and actuatorinterface 138. Interface 100 may also include additional electroniccomponents for communicating via standard protocols on buses 120 and122. In various embodiments, electronic interface 100 can be included inmechanical apparatus 102, in host computer 18, or in its own separatehousing. Different components of interface 100 can be included inapparatus 102 or host computer 18 if desired.

Local microprocessor 130 preferably coupled to bus 120 and may beclosely linked to mechanical apparatus 102 to allow quick communicationwith other components of the interface device. Processor 130 isconsidered "local" to interface device 104, where "local" herein refersto processor 130 being a separate microprocessor from any processors 108in host computer 18. "Local" also preferably refers to processor 130being dedicated to force feedback and sensor I/O of the interface system10, and being closely coupled to sensors and actuators of the mechanicalapparatus 102, such as within the housing of or in a housing coupledclosely to apparatus 102. Microprocessor 130 can be provided withsoftware instructions to wait for commands or requests from computerhost 18, parse/decode the command or request, and handle/control inputand output signals according to the command or request. In addition,processor 130 preferably operates independently of host computer 18 byreading sensor signals and calculating appropriate forces from thosesensor signals, time signals, and force processes selected in accordancewith a host command, and output appropriate control signals to theactuators. Suitable microprocessors for use as local microprocessor 200include the MC68HC711E9 by Motorola and the PIC16C74 by Microchip, forexample. Microprocessor 130 can include one microprocessor chip, ormultiple processors and/or co-processor chips. In other embodiments,microprocessor 130 can include digital signal processor (DSP)functionality.

For example, in one host-controlled embodiment that utilizesmicroprocessor 130, host computer 18 can provide low-level forcecommands over bus 120, which microprocessor 130 directly transmits tothe actuators. In a different local control embodiment, host computersystem 18 provides high level supervisory commands to microprocessor 130over bus 120, and microprocessor 130 manages low level force controlloops to sensors and actuators in accordance with the high levelcommands and independently of the host computer 18. In the local controlembodiment, the microprocessor 130 can process inputted sensor signalsto determine appropriate output actuator signals by following theinstructions of a "force process" that may be stored in local memory andincludes calculation instructions, formulas, force magnitudes, or otherdata. The force process can command distinct force sensations, such asvibrations, textures, jolts, or even simulated interactions betweendisplayed objects. An "enclosure" host command can also be provided,which causes the microprocessor to define a box-like enclosure in agraphical environment, where the enclosure has sides characterized bywall and texture forces. For example, an enclosure command can includeparameters to specify the size and location of the enclosure in thegraphical environment, the wall stiffness and width, surface texture andfriction of the wall, clipping, force characteristics of the interiorregion of the enclosure, scroll surfaces, and the speed of the userobject necessary to engage the forces of the enclosure. Themicroprocessor may locally determine whether the cursor is inside oroutside the enclosure, and characteristics of the enclosure arespecified in the command as parameters. The host can send the localprocessor a spatial layout of objects in the graphical environment sothat the microprocessor has a mapping of locations of graphical objectslike enclosures and can determine interactions with the cursor locally.Force feedback used in graphical environments is described in greaterdetail in co-pending patent application Ser. Nos. 08/571,606,08/756,745, and 08/879,296, entitled, "Graphical Click Surfaces forForce Feedback Applications", by Rosenberg et al., filed Jun. 18, 1997,all of which are incorporated by reference herein.

Sensor signals used by microprocessor 130 are also reported to hostcomputer system 18, which updates a host application program and outputsforce control signals as appropriate. For example, if the user movesmouse 12, the computer system 18 receives position and/or other signalsindicating this movement and can move a displayed cursor in response.These embodiments are described in greater detail in co-pendingapplication Ser. No. 08/534,791 (now U.S. Pat. No. 5,739,811) and Ser.No. 08/566,282. In an alternate embodiment, no local microprocessor 130is included in interface system 10, and host computer 18 directlycontrols and processes all signals to and from the interface 100 andmechanical interface 102.

A local clock 132 can be coupled to the microprocessor 130 to providetiming data, similar to system clock 116 of host computer 18; the timingdata might be required, for example, to compute forces output byactuators 64 (e.g., forces dependent on calculated velocities or othertime dependent factors). In alternate embodiments using the USBcommunication interface, timing data for microprocessor 130 can beretrieved from the USB interface.

Local memory 134, such as RAM and/or ROM, is preferably coupled tomicroprocessor 130 in interface 100 to store instructions formicroprocessor 130 and store temporary and other data. Microprocessor130 may also store calibration parameters in a local memory 134 such asan EEPROM. As described above, link or member lengths or manufacturingvariations in link lengths can be stored. Variations in coil winding ormagnet strength can also be stored. If analog sensors are used,adjustments to compensate for sensor variations can be included, e.g.implemented as a look up table for sensor variation over the user objectworkspace. Memory 134 may be used to store the state of the forcefeedback device, including a reference position, current control mode orconfiguration, etc.

Sensor interface 136 may optionally be included in electronic interface100 convert sensor signals to signals that can be interpreted by themicroprocessor 130 and/or host computer system 18. For example, sensorinterface 136 can receive signals from a digital sensor such as anencoder and convert the signals into a digital binary numberrepresenting the position of a member or component of mechanicalapparatus 14. An analog to digital converter (ADC) in sensor interface136 can convert a received analog signal to a digital signal formicroprocessor 130 and/or host computer 18. Such circuits, or equivalentcircuits, are well known to those skilled in the art. Alternately,microprocessor 130 can perform these interface functions without theneed for a separate sensor interface 136. Or, sensor signals from thesensors can be provided directly to host computer system 18, bypassingmicroprocessor 130 and sensor interface 136. Other types of interfacecircuitry 136 can also be used. For example, an electronic interface isdescribed in U.S. Pat. No. 5,576,727, which is hereby incorporated byreference herein.

Actuator interface 138 can be optionally connected between the actuators64 and microprocessor 130. Interface 138 converts signals frommicroprocessor 130 into signals appropriate to drive the actuators.Interface 138 can include power amplifiers, switches, digital to analogcontrollers (DACs), and other components. Such interfaces are well knownto those skilled in the art. In alternate embodiments, interface 138circuitry can be provided within microprocessor 130 or in the actuators.

In the described embodiment, power is supplied to the actuators 64 andany other components (as required) by the USB. Since the electromagneticactuators of the described embodiment have a limited physical range andneed only output about 3 ounces of force to create realistic forcesensations on the user, very little power is needed. By drawing all ofits required power directly off the USB bus, a large power supply neednot be included in interface system 10 or as an external power adapter.For example, one way to draw additional power from the USB is toconfigure interface 100 and apparatus 102 to appear as more than oneperipheral to host computer 18; for example, each provided degree offreedom of mouse 12 can be configured as a different peripheral andreceive its own allocation of power. Alternatively, power from the USBcan be stored and regulated by interface 100 or apparatus 102 and thusused when needed to drive actuators 64. For example, power can be storedover time and then immediately dissipated to provide a jolt force to theuser object 12. A battery or a capacitor circuit, for example, can storeenergy and discharge or dissipate the energy when power is required bythe system and/or when enough power has been stored. Alternatively, apower supply 140 can optionally be coupled to actuator interface 138and/or actuators 64 to provide electrical power. Power supply 140 can beincluded within the housing of interface 100 or apparatus 102, or can beprovided as a separate component, for example, connected by anelectrical power cord. The power storage embodiment described above,using a battery or capacitor circuit, can also be used in non-USBembodiments to allow a smaller power supply 140 to be used.

Mechanical apparatus 102 is coupled to electronic interface 100preferably includes sensors 62, actuators 64, and linkage 40. Thesecomponents are described in detail above. Sensors 62 sense the position,motion, and/or other characteristics of mouse 12 along one or moredegrees of freedom and provide signals to microprocessor 130 includinginformation representative of those characteristics. Typically, a sensor62 is provided for each degree of freedom along which mouse 12 can bemoved, or, a single compound sensor can be used for multiple degrees offreedom. Example of sensors suitable for embodiments described hereinare optical encoders, as described above. Linear optical encoders maysimilarly sense the change in position of mouse 12 along a linear degreeof freedom. Alternatively, analog sensors such as potentiometers can beused. It is also possible to use non-contact sensors at differentpositions relative to mechanical apparatus 100, such as Hall effectmagnetic sensors for detecting magnetic fields from objects, or anoptical sensor such as a lateral effect photo diode having anemitter/detector pair. In addition, velocity sensors (e.g., tachometers)for measuring velocity of mouse 12 and/or acceleration sensors (e.g.,accelerometers) for measuring acceleration of mouse 12 can be used.Furthermore, either relative or absolute sensors can be employed.

Actuators 64 transmit forces to mouse 12 in one or more directions alongone or more degrees of freedom in response to signals output bymicroprocessor 130 and/or host computer 18, i.e., they are "computercontrolled." Typically, an actuator 64 is provided for each degree offreedom along which forces are desired to be transmitted. Actuators 64can include two types: active actuators and passive actuators. Activeactuators include linear current control motors, stepper motors,pneumatic/hydraulic active actuators, a torquer (motor with limitedangular range), a voice coil actuator as described in the embodimentsabove, and other types of actuators that transmit a force to an object.Passive actuators can also be used for actuators 64, such as magneticparticle brakes, friction brakes, or pneumatic/hydraulic passiveactuators, and generate a damping resistance or friction in a degree ofmotion. For example, an electrorheological fluid can be used in apassive damper, which is a fluid that has a viscosity that can bechanged by an electric field. Likewise, a magnetorheological fluid canbe used in a passive damper, which is a fluid that has a viscosity thatcan be changed by a magnetic field (and typically requires less powerthan an electrorheological fluid). These types of dampers can be usedinstead of or in addition to other types of actuators in the mouseinterface device. In yet other embodiments, passive damper elements canbe provided on the bearings of apparatus 100 to remove energy from thesystem and intentionally increase the dynamic stability of themechanical system. In addition, in voice coil embodiments, multiple wirecoils can be provided, where some of the coils can be used to provideback EMF and damping forces. In some embodiments, all or some of sensors62 and actuators 64 can be included together as a sensor/actuator pairtransducer.

Mechanism 40 is preferably the five-member linkage 40 described above,but can also be one of several types of mechanisms. For example,mechanisms disclosed in co-pending patent applications Ser. No.08/374,288 (now U.S. Pat. No. 5,731,804), Ser. No. 08/400,233 (now U.S.Pat. No. 5,767,839), Ser. No. 08/489,068 (now U.S. Pat. No. 5,721,566),Ser. No. 08/560,091 (now U.S. Pat. No. 5,805,140), Ser. No. 08/623,660(now U.S. Pat. No. 5,691,898), Ser. No. 08/664,086 (now U.S. Pat. No.5,828,197), Ser. No. 08/709,012, and Ser. No. 08/736,161, allincorporated by reference herein, can be included. Mouse 12 canalternatively be a puck, joystick, or other device or article coupled tolinkage 40, as described above.

Other input devices 141 can optionally be included in system 10 and sendinput signals to microprocessor 130 and/or host computer 18. Such inputdevices can include buttons, such as buttons 15 on mouse 12, used tosupplement the input from the user to a GUI, game, simulation, etc.Also, dials, switches, voice recognition hardware (with softwareimplemented by host 18), or other input mechanisms can be used.

Safety or "deadman" switch 150 is preferably included in interfacedevice to provide a mechanism to allow a user to override and deactivateactuators 64, or require a user to activate actuators 64, for safetyreasons. Certain types of actuators, especially active actuators, canpose a safety issue for the user if the actuators unexpectedly movemouse 12 against the user with a strong force. In addition, if a failurein the system 10 occurs, the user may desire to quickly deactivate theactuators to avoid any injury. To provide this option, safety switch 150is coupled to actuators 64. In the preferred embodiment, the user mustcontinually activate or close safety switch 150 during manipulation ofmouse 12 to activate the actuators 64. If, at any time, the safetyswitch is deactivated (opened), power is cut to actuators 64 (or theactuators are otherwise deactivated) as long as the safety switch isopened. For example, one embodiment of safety switch is a mechanical oroptical switch located on mouse 12 or on a convenient surface of ahousing 26. For example, when the user covers an optical safety switchwith a hand or finger, the sensor of the switch is blocked from sensingambient light, and the switch is closed. The actuators 64 thus willfunction as long as the user covers the switch. Other types of safetyswitches 150 can also be used, such as an electrostatic contact switchcan be used to sense contact of the user. A preferred safety switch isdescribed with reference to FIG. 7b. The safety switch can be providedbetween the actuator interface 138 and actuators 64 as shown in FIG. 6;or, the switch can be placed elsewhere. In some embodiments, the stateof the safety switch is provided to the microprocessor 130 to providefurther control over output forces. In addition, the state of the safetyswitch can be sent to the host 18, which can choose to stop sendingforce feedback commands if the safety switch is open. In yet otherembodiments, a second switch can be provided to allow the user to turnoff output forces of interface device 13 when desired, yet still operatethe interface as an input device. The host 18 need not send forcefeedback commands when such a secondary switch has turned off forces.

In some embodiments of interface system 10, multiple mechanicalapparatuses 102 and/or electronic interfaces 100 can be coupled to asingle host computer system 18 through bus 120 (or multiple buses 120)so that multiple users can simultaneously interface with the hostapplication program (in a multi-player game or simulation, for example).In addition, multiple players can interact in the host applicationprogram with multiple interface systems 10 using networked hostcomputers 18, as is well known to those skilled in the art.

FIG. 7a is a perspective view of a mouse 12 suitable for use with thepresent invention. Mouse 12 can be shaped to comfortably fit a user'sfingers and/or hand when the user manipulates the mouse, e.g., mouse 12can be shaped much like a standard mouse used for inputting informationto a computer system. The mouse 12 can take a variety of shapes indifferent embodiments, from a small knob or sphere to a grip havingindentations for the user's fingers.

Mouse 12 may include other input devices 141 such as buttons 15 whichare within easy reach of a user's fingers. Additional buttons, such asbutton 15a, may also be included on the top surface or on the sidesurfaces of mouse 12 for added functionality. Buttons 15 allow a user toinput a command independently of the position of the mouse 12 in theprovided degrees of freedom. For example, in a GUI, buttons are commonlyused to select options once a cursor has been guided to a desired areaor object on the screen using the position of the mouse. In oneembodiment, the user can place his or her two middle fingers on buttons15 and place the remaining fingers on the sides of mouse 12 (and atbutton 15a) to manipulate mouse 12 against forces generated by actuators64. In addition, in some configurations with a smaller-size mouse 12,the fingers 247 of a user may move the mouse 12 and press buttons 15while the palm 248 of the hand remains fixed or resting against agrounded surface. Since the fingers are more sensitive to output forcesthan the entire hand, forces of less magnitude may be output from theinterface system 10 to the fingers and achieve an equivalent forcesensation to higher magnitude forces applied to the entire hand (as witha joystick). Thus, less powerful actuators and less power consumption bythe actuators is required when the user manipulates the mouse 12 withfingers alone.

As shown in FIG. 7b, mouse 12 may also include a safety switch 150 (alsoknown as a "deadman switch"). The safety switch preferably deactivatesany generated forces on the puck when the puck is not in use and/or whenthe user desires to deactivate output forces. As described above, thesafety switch can be implemented in a variety of ways. In FIG. 7b, apreferred way to implement a safety switch 150 is to use a hand-weightsafety switch 250. As implemented, the user must activate or close theswitch before actuators 64 are able to output forces. This is a safetyfeature that prevents the mouse 12 from unexpectedly moving andimpacting the user when the user is not controlling the user object.

Mouse 12' including safety switch 250 includes a grip portion 252, abase 254, a spring 256, and switch contacts 258. Portion 252 may beshaped like mouse 12 described above, but can also be replaced withother types of user objects 12. Portion 252 can be moved up and downalong axis F within a range distance d of the base 254 preferably on anextension member 260 or other similar guide. Distance d is preferablyrelatively small, such as 1 millimeter, and is exaggerated in FIG. 7bfor clarity. Pre-loaded spring 186 preferably forces grip portion 252away from base 254 in a direction indicated by arrow 262 to an "open"position when no weight is placed on portion 252. Preferably, a stop(not shown) coupled to the top of member 260 or to the bottom of portion252 prevents the grip portion 252 from being detached from the base 254.A limit to movement of portion 252 in the direction of base 254 isprovided by the physical engagement of the grip portion and base.

A z-axis force sensor can also be used to measure how hard the user ispushing down on the mouse 12. One example of such a sensor is shown inFIG. 4e. Other types of sensors also can be used, such as piezo electricsensors, force sensitive resistors, and strain gauges. Any z-axispressure or force can also affect forces on the user object such asfriction forces, as explained with reference to FIG. 4e. When using aforce sensor as a safety switch, the microprocessor (or host) can checkfor a minimum threshold pressure on the user object; if the pressure isbelow the threshold, the actuators are deactivated.

Switch contacts 258 are provided between the base 254 and grip portion252 of mouse 12.' Contacts 258 are connected by a bus to the hostcomputer 18 or microprocessor 130, which can monitor when the contactsare touching. When the grip portion 252 is in the open position,contacts 258 are separated and no electrical current can flow betweenthem, and thus no electrical current or power can flow to the actuatorsfrom the power supply. Alternatively, contacts 258 can be connected tomicroprocessor 130 or another selecting component which can detect theopen state of the contacts and can deactivate actuators 64 with a safetydisable signal when the open state is detected. The actuators 64 arethus prevented from outputting forces when the user does not havecontrol of the grip portion 252 and the interface system 10.

When a user grasps portion 252, the weight of the user's hand forces thegrip portion 252 down to engage the base 254. Switch contacts 258connect from this engagement and allow current to flow between them.Contacts 258 complete the circuit from the actuators to the powersupply, and power is thus allowed to flow from the power supply to theactuators. Alternatively, microprocessor 130 detects the closed contactcondition and discontinues sending a safety disable signal to actuators64. This allows the actuators 64 to be controlled and activated by hostcomputer 18 and microprocessor 130 normally. When the user releases thegrip portion from his or her grasp, the spring 256 forces the gripportion 252 away from base 254, which separates contacts 258 anddeactivates the actuators.

The hand-weight safety switch has several advantages over other types ofsafety switches. The user can simply rest his or her fingers or hand onmouse 12' in a normal, comfortable fashion and still activate the safetyswitch due to the weight of the user's hand. Thus, the user need notcover or press an awkwardly-located switch in a particular location ofthe mouse.

In alternate embodiments, other types of safety switches may be used.For example, a mechanical button safety switch similar to buttons 15 canbe provided which makes an electrical contact when the weight of theuser's hand presses on the puck. Contact switches, light detectors, andother types of switches which the user contacts or covers duringoperation of the user object can be provided, but may be more awkward touse during operation of the user object since the user must constantlycontact or cover a specific area of the user object or device housing.Hand-weight safety switch 252 can also be used to supplement a differenttype of safety switch.

FIG. 7c is a diagram for illustrating an indexing feature of the presentinvention. The mouse 12 preferably has an "indexing mode" which allowsthe user to redefine the offset between the positions of the mouse 12and a user-controlled graphical object, such as a cursor, displayed byhost computer 18. Indexing is inherently provided with a traditionalposition control interface such as a mouse. For example, in a GUI, theposition of the mouse controls the position of a cursor in the GUI.Sometimes, a limit to the mouse's movement is reached, such as a limitto available physical space, a limit to a mousepad, etc. In such asituation, the user typically lifts the mouse from the contacted surfaceand places the mouse in a different position to allow more room to movethe mouse. While the mouse is off the contacted surface, no input isprovided to control the cursor.

Mouse 12 of the present invention has a similar limit to movement in theprovided planar workspace. The limit, in the described embodiment, isprovided by guide opening 76 and guide pin 78, as detailed above. Inother embodiments, the limits may be dictated by mechanical apparatus102, actuators 64, or linkage 40; e.g., the limits of the movement ofportions 80 of the voice coil actuators 64. The limits are indicated asdashed lines 266 in FIG. 7c such that the mouse 12 has a workspace 268within the dashed rectangle (or circle or other shape, as desired). Inthe preferred embodiment, the workspace 268 is small (e.g., 0.9"×0.9"),since it has been found that very little workspace is needed to move acursor across the full width or length of a display screen.Nevertheless, a limit 266 to the movement of mouse 12 may be reached ina situation where the user wishes to move the puck past the limit. Forexample, mouse 12 may reach the right limit 266a before the controlledcursor is fully moved to a desired location at the right of the screen.In other situations, the user might desire to reposition mouse 12without providing any input to the graphical environment of hostcomputer 18, such as to reposition mouse 12 to a more comfortableposition, etc.

To allow movement past the limits 266, "indexing" is implemented. Thisallows the user to reposition the mouse 12 without moving the controlledgraphical object or providing any other input to the host computer, thusallowing the user to redefine the offset between the object's positionand the cursor's position. Since the mouse 12 does not contact or rollover a surface like a traditional mouse, the mouse 12 cannot simply bepicked up and repositioned. In the present invention, indexing isachieved through an input device 141. Such input devices can include oneor more buttons, switches, pressure sensors, optical sensors, contactsensors, voice recognition hardware, or other input devices. Forexample, a specialized indexing button can be provided which can bepressed by the user; such a button can be a traditional button 15 or 15aor a hand weight switch 250. As long as the indexing button isactivated, the mouse 12 is in indexing mode and can be moved withoutproviding any input to the host computer (e.g., without moving thecontrolled graphical object). When the button is released (ordeactivated) and non-indexing mode is resumed, the position of thecursor is again controlled by the position of the mouse 12.Alternatively, the user might toggle indexing mode and non-indexing modewith one press of a button 15 or other input device. Thus, the user canmove mouse 12 to a desired position in the planar workspace withoutproviding input.

In one preferred embodiment, the functionality of the safety switch 250and the indexing mode are integrated into one input device, since it istypically desirable to deactivate any output forces to the mouse 12 whenindexing is being performed for safety reasons or ergonomic reasons,e.g. forces intuitively should not be output when indexing occurs.Preferably, the hand weight safety switch 250 shown in FIG. 7b can beused as both a safety switch and an indexing switch. For example, whenthe user places his or her fingers on mouse 12, the switch 250 isclosed, allowing power to the actuators and forces to be output on themouse. This also allows non-indexing mode to be active so that positionsof cursor and mouse are directly mapped. If the user moves the mouse toa limit 266, the user then lifts up on the mouse or otherwise performsthe indexing function. This opens switch 250, thereby disabling power tothe actuators and engaging indexing mode. The user can move mouse 12 toanother position using side motion (so as to not close switch 250),while the cursor remains fixed at its old position on the screen. Whenthe mouse is at its new desired location, the user rests his or herfingers on the mouse 12 normally, thereby closing the switch 250. Thisallows indexing to be performed safely, without the need to provide aseparate safety switch to deactivate the actuators 64.

If a z-axis force sensor is used for indexing, then the microprocessoror host can check for a threshold pressure. If the exerted pressure isbelow the threshold, indexing is active. A different threshold forindexing and for the safety switch can be implemented if desired;typically, the threshold for the safety switch would be lower. A localsensor might check for these threshold pressures, such as a Schmitttrigger, or the microprocessor can check for the threshold pressures. Ifthe microprocessor checks, then the user preferably can input preferredthresholds to customize the interface device for his or her own use.

Indexing mode can be performed directly by the host computer 18.However, in the preferred embodiment, local microprocessor 130 performsthe indexing function. For example, local processor 130 can determinewhen indexing mode is active, and simply not report the position of themouse 12 to the host computer 18 while such mode is active. Whennon-indexing mode is active, processor 130 would resume reporting theposition of the user object to the host. The host is thus completelyignorant of when indexing is performed, since it simply updates cursorposition when it receives position data. The host does not have todetect or keep track of when indexing mode is active, thereby reducingits computational burden.

FIG. 8a is a perspective view of an alternate embodiment of user object12. Object 12 is shown as a stylus-receiving user object 270, which canbe coupled to any embodiment of mechanical apparatus 102, such as thoseembodiments presented above. Stylus-receiving user object 270 includes astylus-receiving member 272, which is preferably a flat, small objectthat includes a stylus aperture 274. Member 272 may, for example, becoupled to object member 50 of the embodiment of mechanical apparatus102. As shown in FIG. 8b, a stylus 276 or a similar article can beinserted into aperture 274 by a user. The user can then move the stylus276 along a provided degree of freedom indicated by arrows 278, whichcauses member 272 to accordingly move in the same direction.Alternatively, stylus 276 can be permanently coupled to member 272.

The embodiment of FIGS. 7a-b can be used in a writing interface versionof interface system 10 where the user uses the interface to write wordsinput to a computer system, or in a pointing interface to direct andmove computer-implemented objects such as a cursor. The member 272 alonecan be considered the "user object" 12 in this embodiment.Alternatively, both stylus 276 and member 272 can collectively beconsidered user object 12, particularly in embodiments where stylus 276is permanently fixed to member 272. In other embodiments, the member 272can be detachable from mechanical apparatus 102 so as to allowdifferent, interchangeable user objects 12 to be used as suited forparticular applications.

FIG. 8c is a perspective view of an alternate embodiment of user object12 in which a finger-receiving user object 280 is provided. In thisembodiment, a finger-receiving member 282, which includes a divot 284.Member 282 may be coupled to apparatus 102 similarly to the member 272of FIG. 8a. As shown in FIG. 8d, a user may insert his or her finger 288into divot 284 and thereby move member 222 in the provided degrees offreedom as indicated by arrows 286. Divot 284 allows the user's finger288 to grip or cling to the member 282 when the user's finger is moved.In other embodiments, features other than or in addition to divot 284can be provided on finger-receiving member 282 to allow the user'sfinger to cling to the object. For example, one or more bumps,apertures, or other projections can be provided. Also, other digits orappendages of the user can be received, such as a user's entire hand,foot, etc. The user object of FIGS. 7c-d can be used to allow the userto move, point to, or otherwise manipulate computer generated objects inan easy, natural fashion. The stylus- and finger-receiving objects ofFIGS. 7a-7d can also be made interchangeable with the mouse object 12 sothat the user can simply attach the desired user object for a particularapplication.

FIG. 8e is a perspective view of an alternate embodiment 290 of thefinger-receiving object 280 of FIGS. 8c-8d. Object 290 includes a flatplanar member 292 that, for example, may resemble a plastic card orother platform. Member 292 is (rigidly) coupled to object member 50, andmay be rotatably coupled to the object member in some embodiments. Theuser may place one or more fingers on the planar member 292 similar tothe object 280 and move it in a planar workspace. In addition, theplanar member 292 can include a rubber or similar surface havingfriction to provide a grip or non-slippery contact between the user'sfingers and the member. Also, the planar member 292 can be contoured orinclude bumps 294 or other protrusions to further promote the user'scontact.

While this invention has been described in terms of several preferredembodiments, it is contemplated that alterations, permutations andequivalents thereof will become apparent to those skilled in the artupon a reading of the specification and study of the drawings. Forexample, other types of mechanical linkages can be provided between themouse 12 and the electronic portion of the interface 14. In addition,other types of actuators, sensors, and user objects can be used in otherembodiments. Furthermore, certain terminology has been used for thepurposes of descriptive clarity, and not to limit the present invention.It is therefore intended that the following appended claims include allsuch alterations, permutations, and equivalents as fall within the truespirit and scope of the present invention.

What is claimed is:
 1. A mouse interface device for interfacing a user'smotion with a host computer and providing force feedback to said user,said mouse interface device comprising:a mouse object contacted andmanipulated by a user and moveable in a planar workspace with respect toa reference surface; a planar linkage including a plurality of membersrotatably coupled to each other, said linkage including a first basemember rotatably coupled to said reference surface, a link memberrotatable coupled to said first base member, a second base memberrotatable coupled to said reference surface, and an object memberrotatable coupled to said link member and rotatable coupled to saidsecond base member, wherein said mouse object is coupled to one of saidlink member and said object member, and wherein said first base memberand said second base member pivot about a single axis with respect tosaid reference surface; two electromagnetic actuators providing forcesin said planar workspace of said mouse object, said forces caused byinteractions between an electric current and a magnetic field, whereineach of said actuators includes a coil portion and a magnet portion,said coil portion and magnet portion moveable relative to each other,and wherein said actuators are controlled from commands output by saidhost computer; and at least one sensor coupled to said reference surfaceand separate from said two actuators, said sensor detecting movementbetween said coil portion and said magnet portion of at least one ofsaid actuators, wherein said sensor provides a sensor signal includinginformation describing said movement from which a position of said mouseobject in said planar workspace can be determined.
 2. A mouse interfacedevice as recited in claim 1 wherein each of said coil portions isrigidly integrated with an associated one of said members of saidlinkage such that said coil portions each rotate about said single axis.3. A mouse interface device as recited in claim 2 wherein said magnetportions are each coupled to said ground surface, wherein each of saidcoil portions moves through a magnetic field of said associated magnetportion.
 4. A mouse interface device as recited in claim 1 wherein saidfirst base member and said second base member are rotatably coupled tosaid reference surface, and wherein said link member is rotatablycoupled to a mid-portion of said object member.
 5. A mouse interfacedevice as recited in claim 4 wherein a moveable portion of one of saidactuators is an end of said first base member, wherein a wire coil ofone of said coil portions is rigidly integrated in said end of saidfirst base member, and wherein a moveable portion of the other one ofsaid actuators is an end of said second base member, wherein a wire coilof the other one of said coil portions is rigidly integrated in said endof said second base member.
 6. A mouse interface device as recited inclaim 5 wherein said at least one sensor includes a plurality ofsensors, and wherein said sensors are digital encoders.
 7. A mouseinterface device as recited in claim 6 wherein said sensors are lateraleffect photo diodes including an emitter and a detector.
 8. A mouseinterface device as recited in claim 1 wherein said mouse object isrotatably coupled to said object member.
 9. A mouse interface device asrecited in claim 8 wherein said mouse object rotates about an axis ofrotation though said object member, said axis of rotation beingperpendicular to said reference surface.
 10. A mouse interface device asrecited in claim 1 further comprising a safety switch that causes saidactuators to be deactivated when said user is not contacting said mouseobject.
 11. A mouse interface device as recited in claim 10 wherein saidsafety switch is a contact switch opened when said user removes weightof his or her fingers from said mouse object.
 12. A mouse interfacedevice as recited in claim 1 wherein said interface device and said hostcomputer communicate using a Universal Serial Bus (USB), and whereinpower to drive said actuators is retrieved from said USB.
 13. A mouseinterface device as recited in claim 1 further comprising a localmicroprocessor, separate from said host computer system and coupled tosaid host computer system by a communication bus, said microprocessorreceiving sensor signals from said at least one sensor and sendingoutput control signals to said actuators to control a level of forceoutput by said actuators.
 14. An interface device as recited in claim 1further comprising a planar sensor pad for sensing a magnitude of forceprovided against said sensor pad in a direction perpendicular to saidtwo degrees of freedom of said mouse object, thereby measuring how hardsaid user pushes said user object.
 15. An interface device as recited inclaim 1 wherein said at least one sensor includes a roller frictionallyengaged with one of said coil portions and an encoder wheel rotatingbetween an emitter and a detector, wherein said roller is rigidlycoupled to said encoder wheel.
 16. An interface device for providingforce feedback to a user of said interface device, wherein a hostcomputer is coupled to said interface device and implements a graphicalenvironment with which said user interacts, said interface devicecomprising:a user object physically contacted and manipulated by a userin two degrees of freedom with respect to a reference surface; amechanical support linkage including a plurality of members, saidsupport linkage being a closed loop five bar linkage coupled to saiduser object and providing said two degrees of freedom substantially in asingle plane, said linkage including two base members coupled to saidreference surface and rotatable about the same axis; a plurality ofvoice coil actuators, each of said actuators including a wire coilrigidly integrated with one of said base members of said linkage suchthat said wire coil rotates with said integrated base member, whereinsaid wire coil moves through a magnetic field provided by a plurality ofgrounded magnets, and wherein at least one housing provides a flux pathand surrounds said magnets, each of said wire coils being coupled to anend of a different member of said support linkage, said coils guidedthrough said magnetic field by said linkage; and at least one sensordetecting movement of said members having said wire coils, wherein saidsensor includes an emitter that emits a beam of energy and a detectorthat detects said beam, wherein both said emitter and said detector ofsaid sensor are coupled to said reference surface.
 17. An interfacedevice as recited in claim 16, wherein said at least one sensor includesa planar sensor pad for sensing a magnitude of force provided againstsaid sensor pad in a direction perpendicular to said two degrees offreedom of said mouse object, thereby measuring how hard said userpushes said user object.
 18. An interface device as recited in claim 16wherein said beam of energy is guided to said detector by a light pipe.19. An interface device as recited in claim 16 wherein a flexible lightguide guides said beam from said emitter to said detector.
 20. Aninterface device as recited in claim 16 wherein said sensors include aroller frictionally engaged with said members having said wire coils andan encoder wheel for passing between said emitter and said detector,wherein said roller is rigidly coupled to said encoder wheel.
 21. Aninterface device as recited in claim 16 further comprising an indexinginput device allowing said user to change the offset between a positionof said user object and a location of a cursor displayed on a displayscreen by disabling the mapping between said cursor and said userobject.
 22. A force feedback mouse interface for interfacing with a hostcomputer system implementing a graphical environment, the force feedbackmouse interface comprising:a mouse object resting on a reference surfaceto be physically contacted by a user and moved in two degrees of freedomin a planar workspace; a planar closed loop linkage coupling said mouseobject to said reference surface and allowing movement of said mouseobject in said two degrees of freedom, said linkage including aplurality of members, each of said members rotatably coupled to twoothers of said members or rotatable coupled to one of said members andto said surface; two grounded voice coil actuators, each of saidactuators including a wire coil provided on a different member of saidlinkage, each of said wire coils pivoting about the same axis ofrotation, wherein each of said actuators includes a plurality ofgrounded magnets in a flux path housing surrounding said wire coil,wherein said housing of one of said actuators is positioned above andcontacting said housing of said other actuator, and wherein each of saidactuators is receptive to a control signal operative to control anoutput force from said actuator on said member having said wire coil;and at least one grounded sensor, said sensor detecting motion of saidmouse object in said two degrees of freedom, said sensor outputting asensor signal indicative of said motion.
 23. A force feedback mouseinterface as recited in claim 22 wherein said at least one groundedsensor includes two grounded sensors, each of said sensors including anemitter of a beam of electromagnetic energy and a detector that detectssaid beam, wherein said sensors detect motion of said members havingsaid wire coils, said sensors outputting a sensor signal indicative ofsaid motion.
 24. A force feedback mouse interface as recited in claim 23wherein each of said sensors includes a grounded emitter and a groundeddetector.
 25. A force feedback mouse interface as recited in claim 22wherein said at least one grounded sensor includes a planar sensor padfor sensing the location of contact with a pointer coupled to saidlinkage.
 26. A force feedback mouse interface as recited in claim 25wherein said planar sensor pad senses a magnitude of force providedagainst said sensor pad in a direction perpendicular to said two degreesof freedom of said mouse object.
 27. A force feedback mouse interface asrecited in claim 22 wherein said wire coils and said grounded magnets ofsaid actuators are used as said at least one grounded sensor to sense avelocity of said members on which said coils are provided.
 28. A forcefeedback mouse interface as recited in claim 22 wherein said sensorincludes an emitter of a beam of electromagnetic energy and a detectorthat detects said beam, wherein said beam is guided to said detector bya light pipe, said sensor outputting a sensor signal indicative of saidmotion.
 29. A force feedback mouse interface as recited in claim 22wherein said sensor includes an emitter of a beam of electromagneticenergy and a detector that detects said beam, wherein a flexible lightguide guides said beam from said emmitter to said detector.
 30. A forcefeedback mouse interface as recited in claim 22 wherein said mouseobject is rotatably coupled to one of said members, and wherein saidmouse object rotates about an axis of rotation that is approximatelyparallel to said axis of rotation of said wire coils.
 31. An interfacedevice for providing force feedback and interfacing with a host computersystem implementing a graphical environment, the interface devicecomprising:a mouse object resting on a reference surface to bephysically contacted by a user and moved in two degrees of freedom in aplanar workspace; a planar closed loop linkage coupling said mouseobject to said reference surface at one location on said referencesurface and allowing movement of said mouse object in said two degreesof freedom, said linkage including a plurality of members rotatablycoupled together by bearings, each of said members rotatably coupled totwo others of said members or rotatable coupled to one of said membersand to said surface; two grounded actuators, each of said actuatorsproviding a force in said two degrees of freedom; and at least onegrounded sensor, said sensors detecting motion of said mouse object insaid two degrees of freedom, said sensor outputting a sensor signalindicative of said motion.
 32. An interface device as recited in claim31 wherein said actuators each includes a wire coil pivoting about thesame axis of rotation, wherein each of said actuators includes aplurality of grounded magnets in a flux path housing surrounding saidwire coil, wherein each of said actuators is receptive to a controlsignal operative to control an output force from said actuator on saidmember having said wire coil.
 33. An interface device as recited inclaim 31 wherein two of said members rotate about the same axispositioned approximately at said one location.
 34. An interface deviceas recited in claim 31 wherein said grounded actuators each include awire coil and a magnet which move relative to each other.
 35. Aninterface device as recited in claim 31 wherein said at least onegrounded sensor includes a planar sensor pad for sensing a location ofcontact with a pointer member coupled to said linkage.
 36. An interfacedevice as recited in claim 31 further comprising a planar sensor pad forsensing a magnitude of force provided against said sensor pad in adirection perpendicular to said two degrees of freedom of said mouseobject, thereby measuring how hard said user pushes said user object.37. A user interface device for interfacing a user's motion with a hostcomputer and for providing force feedback to said user, said interfacedevice comprising:a user manipulatable object contacted andmanipulatable by a user and moveable in two degrees of freedom withrespect to a ground surface, said two degrees of freedom defining x-yplanar workspace; at least one actuator coupled to said usermanipulatable object through a linkage mechanism, said actuatorproviding forces in said planar workspace to be felt by said user asresistance or assistance to motion of said user manipulatable object insaid x-y planar workspace; at least one motion sensor tracking themotion of said user manipulatable object within said x-y planarworkspace; a z-axis force sensor for measuring a force applied by saiduser upon said user manipulatable object along an axis approximatelyorthogonal to said planar workspace, thereby measuring how hard saiduser pushes against said user manipulatable object into or out of saidx-y planar workspace; and a control processor for modulating said forcesproduced by said at least one actuator within said x-y planar workspace,said forces conveying a feel sensation to said user.
 38. A userinterface device as recited in claim 37 wherein said at least oneactuator includes two actuators for generating forces in both of saidtwo degrees of freedom defining said x-y planar workspace.
 39. A userinterface device as recited in claim 38, wherein said actuators arefixed with respect to said ground surface.
 40. A user interface deviceas recited in claim 39 wherein said linkage mechanism is a five barlinkage, said linkage coupled to each of said two actuators and to saiduser manipulatable object.
 41. A user interface device as recited inclaim 37 wherein said user manipulatable object is moveable in a thirddegree of freedom, said third degree of freedom allowing rotation aboutsaid axis orthogonal to said x-y planar workspace.
 42. A user interfacedevice as recited in claim 37 wherein said user manipulatable object isa mouse.
 43. A user interface device as recited in claim 42 wherein saidz-axis force sensor measures how hard said user pushes down on a topsurface of said mouse.
 44. A user interface device as recited in claim37 wherein said user manipulatable object is a stylus.
 45. A userinterface device as recited in claim 44 wherein said z-axis force sensormeasures how hard said user pushes down on said stylus.
 46. A userinterface device as recited in claim 37 wherein said sensor is a planarphoto diode.
 47. A user interface device as recited in claim 37 whereinsaid sensor is an optical encoder.
 48. A user interface device asrecited in claim 37 where said z-axis force sensor is a semiconductortouch pad.
 49. A user interface device as recited in claim 37 whereindata from said z-axis force sensor is used by said control processor, atleast in part, to compute said feel sensations generated within said x-yplanar workspace.
 50. A user interface device as recited in claim 49wherein said feel sensation is a friction sensation, a magnitude of saidfriction sensation being dependent in part on data from said z-axisforce sensor.
 51. A user interface as recited in claim 50 wherein saidfriction sensation created by said actuators has a greater magnitudewhen said user is applying more pressure on said user object into saidx-y planar workspace and wherein said friction sensation created by saidactuators has a lesser magnitude when said user is applying lesspressure on said user object into said x-y planar workspace.
 52. A userinterface device as recited in claim 49 wherein said feel sensation is atexture sensation, the magnitude of said texture sensation beingdependent in part on data from said z-axis force sensor.
 53. A userinterface as recited in claim 52 wherein the texture sensation createdby said actuators is stronger when said user is applying a greateramount of pressure on said user object into said x-y planar workspaceand wherein said texture sensation created by said actuators is weakerwhen said user is applying a lesser amount of pressure on said userobject into said x-y planar workspace.
 54. A user interface device asrecited in claim 49 wherein data from said z-axis force sensor is alsoused to monitor safety, said control processor limiting said forceoutput from said actuators when said user is not pushing down on saiduser manipulatable object with sufficient force.
 55. A user interfacedevice as recited in claim 49 wherein said feel sensation is a dampingsensation, a magnitude of said damping sensation being dependent in parton data from said z-axis force sensor.
 56. A user interface as recitedin claim 55 wherein said damping sensation created by said actuators hasa greater magnitude when said user is applying more pressure on saiduser object into said x-y planar workspace and wherein said dampingsensation created by said actuators has a lesser magnitude when saiduser is applying less pressure on said user object into said x-y planarworkspace.